]> Pileus Git - ~andy/linux/blobdiff - fs/minix/inode.c
Merge branch 'for-linus' of git://neil.brown.name/md
[~andy/linux] / fs / minix / inode.c
index daad3c2740dbd5d85d7afee2f07c3ffdb8f996f3..74ea82d72164a09e3d1b9ec0a0c9be84a0d0ac5f 100644 (file)
@@ -48,8 +48,6 @@ static void minix_put_super(struct super_block *sb)
        kfree(sbi->s_imap);
        sb->s_fs_info = NULL;
        kfree(sbi);
-
-       return;
 }
 
 static struct kmem_cache * minix_inode_cachep;
@@ -554,38 +552,25 @@ static struct buffer_head * V2_minix_update_inode(struct inode * inode)
        return bh;
 }
 
-static struct buffer_head *minix_update_inode(struct inode *inode)
-{
-       if (INODE_VERSION(inode) == MINIX_V1)
-               return V1_minix_update_inode(inode);
-       else
-               return V2_minix_update_inode(inode);
-}
-
-static int minix_write_inode(struct inode * inode, int wait)
-{
-       brelse(minix_update_inode(inode));
-       return 0;
-}
-
-int minix_sync_inode(struct inode * inode)
+static int minix_write_inode(struct inode *inode, int wait)
 {
        int err = 0;
        struct buffer_head *bh;
 
-       bh = minix_update_inode(inode);
-       if (bh && buffer_dirty(bh))
-       {
+       if (INODE_VERSION(inode) == MINIX_V1)
+               bh = V1_minix_update_inode(inode);
+       else
+               bh = V2_minix_update_inode(inode);
+       if (!bh)
+               return -EIO;
+       if (wait && buffer_dirty(bh)) {
                sync_dirty_buffer(bh);
-               if (buffer_req(bh) && !buffer_uptodate(bh))
-               {
+               if (buffer_req(bh) && !buffer_uptodate(bh)) {
                        printk("IO error syncing minix inode [%s:%08lx]\n",
                                inode->i_sb->s_id, inode->i_ino);
-                       err = -1;
+                       err = -EIO;
                }
        }
-       else if (!bh)
-               err = -1;
        brelse (bh);
        return err;
 }