Loading fs/f2fs/file.c +75 −63 Original line number Diff line number Diff line Loading @@ -805,20 +805,21 @@ static inline __u32 f2fs_mask_flags(umode_t mode, __u32 flags) return flags & F2FS_OTHER_FLMASK; } long f2fs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) static int f2fs_ioc_getflags(struct file *filp, unsigned long arg) { struct inode *inode = file_inode(filp); struct f2fs_inode_info *fi = F2FS_I(inode); unsigned int flags; int ret; switch (cmd) { case F2FS_IOC_GETFLAGS: flags = fi->i_flags & FS_FL_USER_VISIBLE; unsigned int flags = fi->i_flags & FS_FL_USER_VISIBLE; return put_user(flags, (int __user *)arg); case F2FS_IOC_SETFLAGS: } static int f2fs_ioc_setflags(struct file *filp, unsigned long arg) { struct inode *inode = file_inode(filp); struct f2fs_inode_info *fi = F2FS_I(inode); unsigned int flags = fi->i_flags & FS_FL_USER_VISIBLE; unsigned int oldflags; int ret; ret = mnt_want_write_file(filp); if (ret) Loading Loading @@ -860,12 +861,14 @@ long f2fs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) mnt_drop_write_file(filp); return ret; } case FITRIM: static int f2fs_ioc_fitrim(struct file *filp, unsigned long arg) { struct inode *inode = file_inode(filp); struct super_block *sb = inode->i_sb; struct request_queue *q = bdev_get_queue(sb->s_bdev); struct fstrim_range range; int ret = 0; int ret; if (!capable(CAP_SYS_ADMIN)) return -EPERM; Loading @@ -886,9 +889,18 @@ long f2fs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) if (copy_to_user((struct fstrim_range __user *)arg, &range, sizeof(range))) return -EFAULT; return 0; } long f2fs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) { switch (cmd) { case F2FS_IOC_GETFLAGS: return f2fs_ioc_getflags(filp, arg); case F2FS_IOC_SETFLAGS: return f2fs_ioc_setflags(filp, arg); case FITRIM: return f2fs_ioc_fitrim(filp, arg); default: return -ENOTTY; } Loading Loading
fs/f2fs/file.c +75 −63 Original line number Diff line number Diff line Loading @@ -805,20 +805,21 @@ static inline __u32 f2fs_mask_flags(umode_t mode, __u32 flags) return flags & F2FS_OTHER_FLMASK; } long f2fs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) static int f2fs_ioc_getflags(struct file *filp, unsigned long arg) { struct inode *inode = file_inode(filp); struct f2fs_inode_info *fi = F2FS_I(inode); unsigned int flags; int ret; switch (cmd) { case F2FS_IOC_GETFLAGS: flags = fi->i_flags & FS_FL_USER_VISIBLE; unsigned int flags = fi->i_flags & FS_FL_USER_VISIBLE; return put_user(flags, (int __user *)arg); case F2FS_IOC_SETFLAGS: } static int f2fs_ioc_setflags(struct file *filp, unsigned long arg) { struct inode *inode = file_inode(filp); struct f2fs_inode_info *fi = F2FS_I(inode); unsigned int flags = fi->i_flags & FS_FL_USER_VISIBLE; unsigned int oldflags; int ret; ret = mnt_want_write_file(filp); if (ret) Loading Loading @@ -860,12 +861,14 @@ long f2fs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) mnt_drop_write_file(filp); return ret; } case FITRIM: static int f2fs_ioc_fitrim(struct file *filp, unsigned long arg) { struct inode *inode = file_inode(filp); struct super_block *sb = inode->i_sb; struct request_queue *q = bdev_get_queue(sb->s_bdev); struct fstrim_range range; int ret = 0; int ret; if (!capable(CAP_SYS_ADMIN)) return -EPERM; Loading @@ -886,9 +889,18 @@ long f2fs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) if (copy_to_user((struct fstrim_range __user *)arg, &range, sizeof(range))) return -EFAULT; return 0; } long f2fs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) { switch (cmd) { case F2FS_IOC_GETFLAGS: return f2fs_ioc_getflags(filp, arg); case F2FS_IOC_SETFLAGS: return f2fs_ioc_setflags(filp, arg); case FITRIM: return f2fs_ioc_fitrim(filp, arg); default: return -ENOTTY; } Loading