diff options
Diffstat (limited to 'fs/ext4/ioctl.c')
| -rw-r--r-- | fs/ext4/ioctl.c | 12 | 
1 files changed, 8 insertions, 4 deletions
diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c index 808c554e773..f18bfe37aff 100644 --- a/fs/ext4/ioctl.c +++ b/fs/ext4/ioctl.c @@ -202,8 +202,9 @@ setversion_out:  		struct super_block *sb = inode->i_sb;  		int err, err2=0; -		if (!capable(CAP_SYS_RESOURCE)) -			return -EPERM; +		err = ext4_resize_begin(sb); +		if (err) +			return err;  		if (get_user(n_blocks_count, (__u32 __user *)arg))  			return -EFAULT; @@ -221,6 +222,7 @@ setversion_out:  		if (err == 0)  			err = err2;  		mnt_drop_write(filp->f_path.mnt); +		ext4_resize_end(sb);  		return err;  	} @@ -271,8 +273,9 @@ mext_out:  		struct super_block *sb = inode->i_sb;  		int err, err2=0; -		if (!capable(CAP_SYS_RESOURCE)) -			return -EPERM; +		err = ext4_resize_begin(sb); +		if (err) +			return err;  		if (copy_from_user(&input, (struct ext4_new_group_input __user *)arg,  				sizeof(input))) @@ -291,6 +294,7 @@ mext_out:  		if (err == 0)  			err = err2;  		mnt_drop_write(filp->f_path.mnt); +		ext4_resize_end(sb);  		return err;  	}  |