]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/ext3/ioctl.c
ext3: add checks for errors from jbd
[linux-2.6-omap-h63xx.git] / fs / ext3 / ioctl.c
index 0d0c70151642faf026c98d53b4179c6395e1b645..b7394d05ee8e9e8261d2a6e8be983b83781d2211 100644 (file)
@@ -239,7 +239,7 @@ setrsvsz_out:
        case EXT3_IOC_GROUP_EXTEND: {
                ext3_fsblk_t n_blocks_count;
                struct super_block *sb = inode->i_sb;
-               int err;
+               int err, err2;
 
                if (!capable(CAP_SYS_RESOURCE))
                        return -EPERM;
@@ -254,8 +254,10 @@ setrsvsz_out:
                }
                err = ext3_group_extend(sb, EXT3_SB(sb)->s_es, n_blocks_count);
                journal_lock_updates(EXT3_SB(sb)->s_journal);
-               journal_flush(EXT3_SB(sb)->s_journal);
+               err2 = journal_flush(EXT3_SB(sb)->s_journal);
                journal_unlock_updates(EXT3_SB(sb)->s_journal);
+               if (err == 0)
+                       err = err2;
 group_extend_out:
                mnt_drop_write(filp->f_path.mnt);
                return err;
@@ -263,7 +265,7 @@ group_extend_out:
        case EXT3_IOC_GROUP_ADD: {
                struct ext3_new_group_data input;
                struct super_block *sb = inode->i_sb;
-               int err;
+               int err, err2;
 
                if (!capable(CAP_SYS_RESOURCE))
                        return -EPERM;
@@ -280,8 +282,10 @@ group_extend_out:
 
                err = ext3_group_add(sb, &input);
                journal_lock_updates(EXT3_SB(sb)->s_journal);
-               journal_flush(EXT3_SB(sb)->s_journal);
+               err2 = journal_flush(EXT3_SB(sb)->s_journal);
                journal_unlock_updates(EXT3_SB(sb)->s_journal);
+               if (err == 0)
+                       err = err2;
 group_add_out:
                mnt_drop_write(filp->f_path.mnt);
                return err;