Patch from Sergey Kubushyn [ksi@koi8.net]
[yaffs2.git] / yaffs_fs.c
index fcf111e43af1f5390eb81dc8f7494a4b1a05ca70..14fd0b8d04906ad39a955fdf506a58f5c24af311 100644 (file)
@@ -31,7 +31,7 @@
  */
 
 const char *yaffs_fs_c_version =
-    "$Id: yaffs_fs.c,v 1.30 2005-09-20 05:22:43 charles Exp $";
+    "$Id: yaffs_fs.c,v 1.33 2005-10-27 22:24:04 marty Exp $";
 extern const char *yaffs_guts_c_version;
 
 #include <linux/config.h>
@@ -604,9 +604,10 @@ static int yaffs_commit_write(struct file *f, struct page *pg, unsigned offset,
        }
 
        T(YAFFS_TRACE_OS,
-         (KERN_DEBUG "yaffs_commit_write returning %d\n", nWritten));
+         (KERN_DEBUG "yaffs_commit_write returning %d\n",
+          nWritten == nBytes ? 0 : -1));
 
-       return nWritten;
+       return nWritten == nBytes ? 0 : -1;
 
 }
 
@@ -1133,8 +1134,10 @@ static int yaffs_rename(struct inode *old_dir, struct dentry *old_dentry,
        yaffs_GrossUnlock(dev);
 
        if (retVal == YAFFS_OK) {
-               new_dentry->d_inode->i_nlink--;
-               mark_inode_dirty(new_dentry->d_inode);
+               if(target) {
+                       new_dentry->d_inode->i_nlink--;
+                       mark_inode_dirty(new_dentry->d_inode);
+               }
 
                return 0;
        } else {
@@ -1490,7 +1493,7 @@ static struct super_block *yaffs_internal_read_super(int yaffsVersion,
 static int yaffs_internal_read_super_mtd(struct super_block *sb, void *data,
                                         int silent)
 {
-       return yaffs_internal_read_super(1, sb, data, silent) ? 0 : -1;
+       return yaffs_internal_read_super(1, sb, data, silent) ? 0 : -EINVAL;
 }
 
 static struct super_block *yaffs_read_super(struct file_system_type *fs,
@@ -1527,7 +1530,7 @@ static DECLARE_FSTYPE(yaffs_fs_type, "yaffs", yaffs_read_super,
 static int yaffs2_internal_read_super_mtd(struct super_block *sb, void *data,
                                          int silent)
 {
-       return yaffs_internal_read_super(2, sb, data, silent) ? 0 : -1;
+       return yaffs_internal_read_super(2, sb, data, silent) ? 0 : -EINVAL;
 }
 
 static struct super_block *yaffs2_read_super(struct file_system_type *fs,