diff options
Diffstat (limited to 'fs/ext4/ioctl.c')
| -rw-r--r-- | fs/ext4/ioctl.c | 13 | 
1 files changed, 10 insertions, 3 deletions
diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c index 0f2252ec274d..bfda18a15592 100644 --- a/fs/ext4/ioctl.c +++ b/fs/ext4/ioctl.c @@ -331,8 +331,7 @@ flags_out:  		if (!inode_owner_or_capable(inode))  			return -EPERM; -		if (EXT4_HAS_RO_COMPAT_FEATURE(inode->i_sb, -				EXT4_FEATURE_RO_COMPAT_METADATA_CSUM)) { +		if (ext4_has_metadata_csum(inode->i_sb)) {  			ext4_warning(sb, "Setting inode version is not "  				     "supported with metadata_csum enabled.");  			return -ENOTTY; @@ -532,9 +531,17 @@ group_add_out:  	}  	case EXT4_IOC_SWAP_BOOT: +	{ +		int err;  		if (!(filp->f_mode & FMODE_WRITE))  			return -EBADF; -		return swap_inode_boot_loader(sb, inode); +		err = mnt_want_write_file(filp); +		if (err) +			return err; +		err = swap_inode_boot_loader(sb, inode); +		mnt_drop_write_file(filp); +		return err; +	}  	case EXT4_IOC_RESIZE_FS: {  		ext4_fsblk_t n_blocks_count;  |