diff options
Diffstat (limited to 'fs/ocfs2')
-rw-r--r-- | fs/ocfs2/Kconfig | 3 | ||||
-rw-r--r-- | fs/ocfs2/file.c | 10 | ||||
-rw-r--r-- | fs/ocfs2/super.c | 5 |
3 files changed, 8 insertions, 10 deletions
diff --git a/fs/ocfs2/Kconfig b/fs/ocfs2/Kconfig index ab152c00cd3a..77a8de5f7119 100644 --- a/fs/ocfs2/Kconfig +++ b/fs/ocfs2/Kconfig | |||
@@ -1,7 +1,6 @@ | |||
1 | config OCFS2_FS | 1 | config OCFS2_FS |
2 | tristate "OCFS2 file system support" | 2 | tristate "OCFS2 file system support" |
3 | depends on NET && SYSFS | 3 | depends on NET && SYSFS && CONFIGFS_FS |
4 | select CONFIGFS_FS | ||
5 | select JBD2 | 4 | select JBD2 |
6 | select CRC32 | 5 | select CRC32 |
7 | select QUOTA | 6 | select QUOTA |
diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c index 63e3fca266e0..a6651956482e 100644 --- a/fs/ocfs2/file.c +++ b/fs/ocfs2/file.c | |||
@@ -1989,20 +1989,20 @@ int ocfs2_change_file_space(struct file *file, unsigned int cmd, | |||
1989 | return __ocfs2_change_file_space(file, inode, file->f_pos, cmd, sr, 0); | 1989 | return __ocfs2_change_file_space(file, inode, file->f_pos, cmd, sr, 0); |
1990 | } | 1990 | } |
1991 | 1991 | ||
1992 | static long ocfs2_fallocate(struct inode *inode, int mode, loff_t offset, | 1992 | static long ocfs2_fallocate(struct file *file, int mode, loff_t offset, |
1993 | loff_t len) | 1993 | loff_t len) |
1994 | { | 1994 | { |
1995 | struct inode *inode = file->f_path.dentry->d_inode; | ||
1995 | struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); | 1996 | struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); |
1996 | struct ocfs2_space_resv sr; | 1997 | struct ocfs2_space_resv sr; |
1997 | int change_size = 1; | 1998 | int change_size = 1; |
1998 | int cmd = OCFS2_IOC_RESVSP64; | 1999 | int cmd = OCFS2_IOC_RESVSP64; |
1999 | 2000 | ||
2001 | if (mode & ~(FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE)) | ||
2002 | return -EOPNOTSUPP; | ||
2000 | if (!ocfs2_writes_unwritten_extents(osb)) | 2003 | if (!ocfs2_writes_unwritten_extents(osb)) |
2001 | return -EOPNOTSUPP; | 2004 | return -EOPNOTSUPP; |
2002 | 2005 | ||
2003 | if (S_ISDIR(inode->i_mode)) | ||
2004 | return -ENODEV; | ||
2005 | |||
2006 | if (mode & FALLOC_FL_KEEP_SIZE) | 2006 | if (mode & FALLOC_FL_KEEP_SIZE) |
2007 | change_size = 0; | 2007 | change_size = 0; |
2008 | 2008 | ||
@@ -2610,7 +2610,6 @@ const struct inode_operations ocfs2_file_iops = { | |||
2610 | .getxattr = generic_getxattr, | 2610 | .getxattr = generic_getxattr, |
2611 | .listxattr = ocfs2_listxattr, | 2611 | .listxattr = ocfs2_listxattr, |
2612 | .removexattr = generic_removexattr, | 2612 | .removexattr = generic_removexattr, |
2613 | .fallocate = ocfs2_fallocate, | ||
2614 | .fiemap = ocfs2_fiemap, | 2613 | .fiemap = ocfs2_fiemap, |
2615 | }; | 2614 | }; |
2616 | 2615 | ||
@@ -2642,6 +2641,7 @@ const struct file_operations ocfs2_fops = { | |||
2642 | .flock = ocfs2_flock, | 2641 | .flock = ocfs2_flock, |
2643 | .splice_read = ocfs2_file_splice_read, | 2642 | .splice_read = ocfs2_file_splice_read, |
2644 | .splice_write = ocfs2_file_splice_write, | 2643 | .splice_write = ocfs2_file_splice_write, |
2644 | .fallocate = ocfs2_fallocate, | ||
2645 | }; | 2645 | }; |
2646 | 2646 | ||
2647 | const struct file_operations ocfs2_dops = { | 2647 | const struct file_operations ocfs2_dops = { |
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c index 06d1f749ca89..38f986d2447e 100644 --- a/fs/ocfs2/super.c +++ b/fs/ocfs2/super.c | |||
@@ -993,8 +993,7 @@ static void ocfs2_disable_quotas(struct ocfs2_super *osb) | |||
993 | } | 993 | } |
994 | 994 | ||
995 | /* Handle quota on quotactl */ | 995 | /* Handle quota on quotactl */ |
996 | static int ocfs2_quota_on(struct super_block *sb, int type, int format_id, | 996 | static int ocfs2_quota_on(struct super_block *sb, int type, int format_id) |
997 | char *path) | ||
998 | { | 997 | { |
999 | unsigned int feature[MAXQUOTAS] = { OCFS2_FEATURE_RO_COMPAT_USRQUOTA, | 998 | unsigned int feature[MAXQUOTAS] = { OCFS2_FEATURE_RO_COMPAT_USRQUOTA, |
1000 | OCFS2_FEATURE_RO_COMPAT_GRPQUOTA}; | 999 | OCFS2_FEATURE_RO_COMPAT_GRPQUOTA}; |
@@ -1013,7 +1012,7 @@ static int ocfs2_quota_off(struct super_block *sb, int type) | |||
1013 | } | 1012 | } |
1014 | 1013 | ||
1015 | static const struct quotactl_ops ocfs2_quotactl_ops = { | 1014 | static const struct quotactl_ops ocfs2_quotactl_ops = { |
1016 | .quota_on = ocfs2_quota_on, | 1015 | .quota_on_meta = ocfs2_quota_on, |
1017 | .quota_off = ocfs2_quota_off, | 1016 | .quota_off = ocfs2_quota_off, |
1018 | .quota_sync = dquot_quota_sync, | 1017 | .quota_sync = dquot_quota_sync, |
1019 | .get_info = dquot_get_dqinfo, | 1018 | .get_info = dquot_get_dqinfo, |