diff options
author | Jiri Kosina <jkosina@suse.cz> | 2010-06-16 12:08:13 -0400 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2010-06-16 12:08:13 -0400 |
commit | f1bbbb6912662b9f6070c5bfc4ca9eb1f06a9d5b (patch) | |
tree | c2c130a74be25b0b2dff992e1a195e2728bdaadd /fs/reiserfs | |
parent | fd0961ff67727482bb20ca7e8ea97b83e9de2ddb (diff) | |
parent | 7e27d6e778cd87b6f2415515d7127eba53fe5d02 (diff) |
Merge branch 'master' into for-next
Diffstat (limited to 'fs/reiserfs')
-rw-r--r-- | fs/reiserfs/dir.c | 9 | ||||
-rw-r--r-- | fs/reiserfs/file.c | 8 | ||||
-rw-r--r-- | fs/reiserfs/namei.c | 18 | ||||
-rw-r--r-- | fs/reiserfs/super.c | 48 | ||||
-rw-r--r-- | fs/reiserfs/xattr.c | 16 | ||||
-rw-r--r-- | fs/reiserfs/xattr_acl.c | 4 | ||||
-rw-r--r-- | fs/reiserfs/xattr_security.c | 2 | ||||
-rw-r--r-- | fs/reiserfs/xattr_trusted.c | 2 | ||||
-rw-r--r-- | fs/reiserfs/xattr_user.c | 2 |
9 files changed, 56 insertions, 53 deletions
diff --git a/fs/reiserfs/dir.c b/fs/reiserfs/dir.c index 07930449a958..198dabf1b2bb 100644 --- a/fs/reiserfs/dir.c +++ b/fs/reiserfs/dir.c | |||
@@ -14,10 +14,10 @@ | |||
14 | extern const struct reiserfs_key MIN_KEY; | 14 | extern const struct reiserfs_key MIN_KEY; |
15 | 15 | ||
16 | static int reiserfs_readdir(struct file *, void *, filldir_t); | 16 | static int reiserfs_readdir(struct file *, void *, filldir_t); |
17 | static int reiserfs_dir_fsync(struct file *filp, struct dentry *dentry, | 17 | static int reiserfs_dir_fsync(struct file *filp, int datasync); |
18 | int datasync); | ||
19 | 18 | ||
20 | const struct file_operations reiserfs_dir_operations = { | 19 | const struct file_operations reiserfs_dir_operations = { |
20 | .llseek = generic_file_llseek, | ||
21 | .read = generic_read_dir, | 21 | .read = generic_read_dir, |
22 | .readdir = reiserfs_readdir, | 22 | .readdir = reiserfs_readdir, |
23 | .fsync = reiserfs_dir_fsync, | 23 | .fsync = reiserfs_dir_fsync, |
@@ -27,10 +27,9 @@ const struct file_operations reiserfs_dir_operations = { | |||
27 | #endif | 27 | #endif |
28 | }; | 28 | }; |
29 | 29 | ||
30 | static int reiserfs_dir_fsync(struct file *filp, struct dentry *dentry, | 30 | static int reiserfs_dir_fsync(struct file *filp, int datasync) |
31 | int datasync) | ||
32 | { | 31 | { |
33 | struct inode *inode = dentry->d_inode; | 32 | struct inode *inode = filp->f_mapping->host; |
34 | int err; | 33 | int err; |
35 | reiserfs_write_lock(inode->i_sb); | 34 | reiserfs_write_lock(inode->i_sb); |
36 | err = reiserfs_commit_for_inode(inode); | 35 | err = reiserfs_commit_for_inode(inode); |
diff --git a/fs/reiserfs/file.c b/fs/reiserfs/file.c index 1d9c12714c5c..b82cdd8a45dd 100644 --- a/fs/reiserfs/file.c +++ b/fs/reiserfs/file.c | |||
@@ -134,10 +134,9 @@ static void reiserfs_vfs_truncate_file(struct inode *inode) | |||
134 | * be removed... | 134 | * be removed... |
135 | */ | 135 | */ |
136 | 136 | ||
137 | static int reiserfs_sync_file(struct file *filp, | 137 | static int reiserfs_sync_file(struct file *filp, int datasync) |
138 | struct dentry *dentry, int datasync) | ||
139 | { | 138 | { |
140 | struct inode *inode = dentry->d_inode; | 139 | struct inode *inode = filp->f_mapping->host; |
141 | int err; | 140 | int err; |
142 | int barrier_done; | 141 | int barrier_done; |
143 | 142 | ||
@@ -147,7 +146,8 @@ static int reiserfs_sync_file(struct file *filp, | |||
147 | barrier_done = reiserfs_commit_for_inode(inode); | 146 | barrier_done = reiserfs_commit_for_inode(inode); |
148 | reiserfs_write_unlock(inode->i_sb); | 147 | reiserfs_write_unlock(inode->i_sb); |
149 | if (barrier_done != 1 && reiserfs_barrier_flush(inode->i_sb)) | 148 | if (barrier_done != 1 && reiserfs_barrier_flush(inode->i_sb)) |
150 | blkdev_issue_flush(inode->i_sb->s_bdev, NULL); | 149 | blkdev_issue_flush(inode->i_sb->s_bdev, GFP_KERNEL, NULL, |
150 | BLKDEV_IFL_WAIT); | ||
151 | if (barrier_done < 0) | 151 | if (barrier_done < 0) |
152 | return barrier_done; | 152 | return barrier_done; |
153 | return (err < 0) ? -EIO : 0; | 153 | return (err < 0) ? -EIO : 0; |
diff --git a/fs/reiserfs/namei.c b/fs/reiserfs/namei.c index d0c43cb99ffc..ee78d4a0086a 100644 --- a/fs/reiserfs/namei.c +++ b/fs/reiserfs/namei.c | |||
@@ -561,23 +561,13 @@ static int drop_new_inode(struct inode *inode) | |||
561 | */ | 561 | */ |
562 | static int new_inode_init(struct inode *inode, struct inode *dir, int mode) | 562 | static int new_inode_init(struct inode *inode, struct inode *dir, int mode) |
563 | { | 563 | { |
564 | |||
565 | /* the quota init calls have to know who to charge the quota to, so | ||
566 | ** we have to set uid and gid here | ||
567 | */ | ||
568 | inode->i_uid = current_fsuid(); | ||
569 | inode->i_mode = mode; | ||
570 | /* Make inode invalid - just in case we are going to drop it before | 564 | /* Make inode invalid - just in case we are going to drop it before |
571 | * the initialization happens */ | 565 | * the initialization happens */ |
572 | INODE_PKEY(inode)->k_objectid = 0; | 566 | INODE_PKEY(inode)->k_objectid = 0; |
573 | 567 | /* the quota init calls have to know who to charge the quota to, so | |
574 | if (dir->i_mode & S_ISGID) { | 568 | ** we have to set uid and gid here |
575 | inode->i_gid = dir->i_gid; | 569 | */ |
576 | if (S_ISDIR(mode)) | 570 | inode_init_owner(inode, dir, mode); |
577 | inode->i_mode |= S_ISGID; | ||
578 | } else { | ||
579 | inode->i_gid = current_fsgid(); | ||
580 | } | ||
581 | dquot_initialize(inode); | 571 | dquot_initialize(inode); |
582 | return 0; | 572 | return 0; |
583 | } | 573 | } |
diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c index 59125fb36d42..9822fa15118b 100644 --- a/fs/reiserfs/super.c +++ b/fs/reiserfs/super.c | |||
@@ -158,6 +158,7 @@ static int finish_unfinished(struct super_block *s) | |||
158 | #ifdef CONFIG_QUOTA | 158 | #ifdef CONFIG_QUOTA |
159 | int i; | 159 | int i; |
160 | int ms_active_set; | 160 | int ms_active_set; |
161 | int quota_enabled[MAXQUOTAS]; | ||
161 | #endif | 162 | #endif |
162 | 163 | ||
163 | /* compose key to look for "save" links */ | 164 | /* compose key to look for "save" links */ |
@@ -179,8 +180,15 @@ static int finish_unfinished(struct super_block *s) | |||
179 | } | 180 | } |
180 | /* Turn on quotas so that they are updated correctly */ | 181 | /* Turn on quotas so that they are updated correctly */ |
181 | for (i = 0; i < MAXQUOTAS; i++) { | 182 | for (i = 0; i < MAXQUOTAS; i++) { |
183 | quota_enabled[i] = 1; | ||
182 | if (REISERFS_SB(s)->s_qf_names[i]) { | 184 | if (REISERFS_SB(s)->s_qf_names[i]) { |
183 | int ret = reiserfs_quota_on_mount(s, i); | 185 | int ret; |
186 | |||
187 | if (sb_has_quota_active(s, i)) { | ||
188 | quota_enabled[i] = 0; | ||
189 | continue; | ||
190 | } | ||
191 | ret = reiserfs_quota_on_mount(s, i); | ||
184 | if (ret < 0) | 192 | if (ret < 0) |
185 | reiserfs_warning(s, "reiserfs-2500", | 193 | reiserfs_warning(s, "reiserfs-2500", |
186 | "cannot turn on journaled " | 194 | "cannot turn on journaled " |
@@ -304,8 +312,8 @@ static int finish_unfinished(struct super_block *s) | |||
304 | #ifdef CONFIG_QUOTA | 312 | #ifdef CONFIG_QUOTA |
305 | /* Turn quotas off */ | 313 | /* Turn quotas off */ |
306 | for (i = 0; i < MAXQUOTAS; i++) { | 314 | for (i = 0; i < MAXQUOTAS; i++) { |
307 | if (sb_dqopt(s)->files[i]) | 315 | if (sb_dqopt(s)->files[i] && quota_enabled[i]) |
308 | vfs_quota_off(s, i, 0); | 316 | dquot_quota_off(s, i); |
309 | } | 317 | } |
310 | if (ms_active_set) | 318 | if (ms_active_set) |
311 | /* Restore the flag back */ | 319 | /* Restore the flag back */ |
@@ -466,6 +474,8 @@ static void reiserfs_put_super(struct super_block *s) | |||
466 | struct reiserfs_transaction_handle th; | 474 | struct reiserfs_transaction_handle th; |
467 | th.t_trans_id = 0; | 475 | th.t_trans_id = 0; |
468 | 476 | ||
477 | dquot_disable(s, -1, DQUOT_USAGE_ENABLED | DQUOT_LIMITS_ENABLED); | ||
478 | |||
469 | reiserfs_write_lock(s); | 479 | reiserfs_write_lock(s); |
470 | 480 | ||
471 | if (s->s_dirt) | 481 | if (s->s_dirt) |
@@ -620,7 +630,7 @@ static int reiserfs_acquire_dquot(struct dquot *); | |||
620 | static int reiserfs_release_dquot(struct dquot *); | 630 | static int reiserfs_release_dquot(struct dquot *); |
621 | static int reiserfs_mark_dquot_dirty(struct dquot *); | 631 | static int reiserfs_mark_dquot_dirty(struct dquot *); |
622 | static int reiserfs_write_info(struct super_block *, int); | 632 | static int reiserfs_write_info(struct super_block *, int); |
623 | static int reiserfs_quota_on(struct super_block *, int, int, char *, int); | 633 | static int reiserfs_quota_on(struct super_block *, int, int, char *); |
624 | 634 | ||
625 | static const struct dquot_operations reiserfs_quota_operations = { | 635 | static const struct dquot_operations reiserfs_quota_operations = { |
626 | .write_dquot = reiserfs_write_dquot, | 636 | .write_dquot = reiserfs_write_dquot, |
@@ -634,12 +644,12 @@ static const struct dquot_operations reiserfs_quota_operations = { | |||
634 | 644 | ||
635 | static const struct quotactl_ops reiserfs_qctl_operations = { | 645 | static const struct quotactl_ops reiserfs_qctl_operations = { |
636 | .quota_on = reiserfs_quota_on, | 646 | .quota_on = reiserfs_quota_on, |
637 | .quota_off = vfs_quota_off, | 647 | .quota_off = dquot_quota_off, |
638 | .quota_sync = vfs_quota_sync, | 648 | .quota_sync = dquot_quota_sync, |
639 | .get_info = vfs_get_dqinfo, | 649 | .get_info = dquot_get_dqinfo, |
640 | .set_info = vfs_set_dqinfo, | 650 | .set_info = dquot_set_dqinfo, |
641 | .get_dqblk = vfs_get_dqblk, | 651 | .get_dqblk = dquot_get_dqblk, |
642 | .set_dqblk = vfs_set_dqblk, | 652 | .set_dqblk = dquot_set_dqblk, |
643 | }; | 653 | }; |
644 | #endif | 654 | #endif |
645 | 655 | ||
@@ -1242,6 +1252,11 @@ static int reiserfs_remount(struct super_block *s, int *mount_flags, char *arg) | |||
1242 | if (s->s_flags & MS_RDONLY) | 1252 | if (s->s_flags & MS_RDONLY) |
1243 | /* it is read-only already */ | 1253 | /* it is read-only already */ |
1244 | goto out_ok; | 1254 | goto out_ok; |
1255 | |||
1256 | err = dquot_suspend(s, -1); | ||
1257 | if (err < 0) | ||
1258 | goto out_err; | ||
1259 | |||
1245 | /* try to remount file system with read-only permissions */ | 1260 | /* try to remount file system with read-only permissions */ |
1246 | if (sb_umount_state(rs) == REISERFS_VALID_FS | 1261 | if (sb_umount_state(rs) == REISERFS_VALID_FS |
1247 | || REISERFS_SB(s)->s_mount_state != REISERFS_VALID_FS) { | 1262 | || REISERFS_SB(s)->s_mount_state != REISERFS_VALID_FS) { |
@@ -1295,6 +1310,7 @@ static int reiserfs_remount(struct super_block *s, int *mount_flags, char *arg) | |||
1295 | s->s_dirt = 0; | 1310 | s->s_dirt = 0; |
1296 | 1311 | ||
1297 | if (!(*mount_flags & MS_RDONLY)) { | 1312 | if (!(*mount_flags & MS_RDONLY)) { |
1313 | dquot_resume(s, -1); | ||
1298 | finish_unfinished(s); | 1314 | finish_unfinished(s); |
1299 | reiserfs_xattr_init(s, *mount_flags); | 1315 | reiserfs_xattr_init(s, *mount_flags); |
1300 | } | 1316 | } |
@@ -2022,15 +2038,15 @@ static int reiserfs_write_info(struct super_block *sb, int type) | |||
2022 | */ | 2038 | */ |
2023 | static int reiserfs_quota_on_mount(struct super_block *sb, int type) | 2039 | static int reiserfs_quota_on_mount(struct super_block *sb, int type) |
2024 | { | 2040 | { |
2025 | return vfs_quota_on_mount(sb, REISERFS_SB(sb)->s_qf_names[type], | 2041 | return dquot_quota_on_mount(sb, REISERFS_SB(sb)->s_qf_names[type], |
2026 | REISERFS_SB(sb)->s_jquota_fmt, type); | 2042 | REISERFS_SB(sb)->s_jquota_fmt, type); |
2027 | } | 2043 | } |
2028 | 2044 | ||
2029 | /* | 2045 | /* |
2030 | * Standard function to be called on quota_on | 2046 | * Standard function to be called on quota_on |
2031 | */ | 2047 | */ |
2032 | static int reiserfs_quota_on(struct super_block *sb, int type, int format_id, | 2048 | static int reiserfs_quota_on(struct super_block *sb, int type, int format_id, |
2033 | char *name, int remount) | 2049 | char *name) |
2034 | { | 2050 | { |
2035 | int err; | 2051 | int err; |
2036 | struct path path; | 2052 | struct path path; |
@@ -2039,9 +2055,7 @@ static int reiserfs_quota_on(struct super_block *sb, int type, int format_id, | |||
2039 | 2055 | ||
2040 | if (!(REISERFS_SB(sb)->s_mount_opt & (1 << REISERFS_QUOTA))) | 2056 | if (!(REISERFS_SB(sb)->s_mount_opt & (1 << REISERFS_QUOTA))) |
2041 | return -EINVAL; | 2057 | return -EINVAL; |
2042 | /* No more checks needed? Path and format_id are bogus anyway... */ | 2058 | |
2043 | if (remount) | ||
2044 | return vfs_quota_on(sb, type, format_id, name, 1); | ||
2045 | err = kern_path(name, LOOKUP_FOLLOW, &path); | 2059 | err = kern_path(name, LOOKUP_FOLLOW, &path); |
2046 | if (err) | 2060 | if (err) |
2047 | return err; | 2061 | return err; |
@@ -2085,7 +2099,7 @@ static int reiserfs_quota_on(struct super_block *sb, int type, int format_id, | |||
2085 | if (err) | 2099 | if (err) |
2086 | goto out; | 2100 | goto out; |
2087 | } | 2101 | } |
2088 | err = vfs_quota_on_path(sb, type, format_id, &path); | 2102 | err = dquot_quota_on_path(sb, type, format_id, &path); |
2089 | out: | 2103 | out: |
2090 | path_put(&path); | 2104 | path_put(&path); |
2091 | return err; | 2105 | return err; |
diff --git a/fs/reiserfs/xattr.c b/fs/reiserfs/xattr.c index e7cc00e636dc..8c4cf273c672 100644 --- a/fs/reiserfs/xattr.c +++ b/fs/reiserfs/xattr.c | |||
@@ -723,11 +723,11 @@ out: | |||
723 | (handler) = *(handlers)++) | 723 | (handler) = *(handlers)++) |
724 | 724 | ||
725 | /* This is the implementation for the xattr plugin infrastructure */ | 725 | /* This is the implementation for the xattr plugin infrastructure */ |
726 | static inline struct xattr_handler * | 726 | static inline const struct xattr_handler * |
727 | find_xattr_handler_prefix(struct xattr_handler **handlers, | 727 | find_xattr_handler_prefix(const struct xattr_handler **handlers, |
728 | const char *name) | 728 | const char *name) |
729 | { | 729 | { |
730 | struct xattr_handler *xah; | 730 | const struct xattr_handler *xah; |
731 | 731 | ||
732 | if (!handlers) | 732 | if (!handlers) |
733 | return NULL; | 733 | return NULL; |
@@ -748,7 +748,7 @@ ssize_t | |||
748 | reiserfs_getxattr(struct dentry * dentry, const char *name, void *buffer, | 748 | reiserfs_getxattr(struct dentry * dentry, const char *name, void *buffer, |
749 | size_t size) | 749 | size_t size) |
750 | { | 750 | { |
751 | struct xattr_handler *handler; | 751 | const struct xattr_handler *handler; |
752 | 752 | ||
753 | handler = find_xattr_handler_prefix(dentry->d_sb->s_xattr, name); | 753 | handler = find_xattr_handler_prefix(dentry->d_sb->s_xattr, name); |
754 | 754 | ||
@@ -767,7 +767,7 @@ int | |||
767 | reiserfs_setxattr(struct dentry *dentry, const char *name, const void *value, | 767 | reiserfs_setxattr(struct dentry *dentry, const char *name, const void *value, |
768 | size_t size, int flags) | 768 | size_t size, int flags) |
769 | { | 769 | { |
770 | struct xattr_handler *handler; | 770 | const struct xattr_handler *handler; |
771 | 771 | ||
772 | handler = find_xattr_handler_prefix(dentry->d_sb->s_xattr, name); | 772 | handler = find_xattr_handler_prefix(dentry->d_sb->s_xattr, name); |
773 | 773 | ||
@@ -784,7 +784,7 @@ reiserfs_setxattr(struct dentry *dentry, const char *name, const void *value, | |||
784 | */ | 784 | */ |
785 | int reiserfs_removexattr(struct dentry *dentry, const char *name) | 785 | int reiserfs_removexattr(struct dentry *dentry, const char *name) |
786 | { | 786 | { |
787 | struct xattr_handler *handler; | 787 | const struct xattr_handler *handler; |
788 | handler = find_xattr_handler_prefix(dentry->d_sb->s_xattr, name); | 788 | handler = find_xattr_handler_prefix(dentry->d_sb->s_xattr, name); |
789 | 789 | ||
790 | if (!handler || get_inode_sd_version(dentry->d_inode) == STAT_DATA_V1) | 790 | if (!handler || get_inode_sd_version(dentry->d_inode) == STAT_DATA_V1) |
@@ -807,7 +807,7 @@ static int listxattr_filler(void *buf, const char *name, int namelen, | |||
807 | size_t size; | 807 | size_t size; |
808 | if (name[0] != '.' || | 808 | if (name[0] != '.' || |
809 | (namelen != 1 && (name[1] != '.' || namelen != 2))) { | 809 | (namelen != 1 && (name[1] != '.' || namelen != 2))) { |
810 | struct xattr_handler *handler; | 810 | const struct xattr_handler *handler; |
811 | handler = find_xattr_handler_prefix(b->dentry->d_sb->s_xattr, | 811 | handler = find_xattr_handler_prefix(b->dentry->d_sb->s_xattr, |
812 | name); | 812 | name); |
813 | if (!handler) /* Unsupported xattr name */ | 813 | if (!handler) /* Unsupported xattr name */ |
@@ -920,7 +920,7 @@ static int create_privroot(struct dentry *dentry) { return 0; } | |||
920 | #endif | 920 | #endif |
921 | 921 | ||
922 | /* Actual operations that are exported to VFS-land */ | 922 | /* Actual operations that are exported to VFS-land */ |
923 | struct xattr_handler *reiserfs_xattr_handlers[] = { | 923 | const struct xattr_handler *reiserfs_xattr_handlers[] = { |
924 | #ifdef CONFIG_REISERFS_FS_XATTR | 924 | #ifdef CONFIG_REISERFS_FS_XATTR |
925 | &reiserfs_xattr_user_handler, | 925 | &reiserfs_xattr_user_handler, |
926 | &reiserfs_xattr_trusted_handler, | 926 | &reiserfs_xattr_trusted_handler, |
diff --git a/fs/reiserfs/xattr_acl.c b/fs/reiserfs/xattr_acl.c index 9cdb759645a9..536d697a8a28 100644 --- a/fs/reiserfs/xattr_acl.c +++ b/fs/reiserfs/xattr_acl.c | |||
@@ -500,7 +500,7 @@ static size_t posix_acl_access_list(struct dentry *dentry, char *list, | |||
500 | return size; | 500 | return size; |
501 | } | 501 | } |
502 | 502 | ||
503 | struct xattr_handler reiserfs_posix_acl_access_handler = { | 503 | const struct xattr_handler reiserfs_posix_acl_access_handler = { |
504 | .prefix = POSIX_ACL_XATTR_ACCESS, | 504 | .prefix = POSIX_ACL_XATTR_ACCESS, |
505 | .flags = ACL_TYPE_ACCESS, | 505 | .flags = ACL_TYPE_ACCESS, |
506 | .get = posix_acl_get, | 506 | .get = posix_acl_get, |
@@ -520,7 +520,7 @@ static size_t posix_acl_default_list(struct dentry *dentry, char *list, | |||
520 | return size; | 520 | return size; |
521 | } | 521 | } |
522 | 522 | ||
523 | struct xattr_handler reiserfs_posix_acl_default_handler = { | 523 | const struct xattr_handler reiserfs_posix_acl_default_handler = { |
524 | .prefix = POSIX_ACL_XATTR_DEFAULT, | 524 | .prefix = POSIX_ACL_XATTR_DEFAULT, |
525 | .flags = ACL_TYPE_DEFAULT, | 525 | .flags = ACL_TYPE_DEFAULT, |
526 | .get = posix_acl_get, | 526 | .get = posix_acl_get, |
diff --git a/fs/reiserfs/xattr_security.c b/fs/reiserfs/xattr_security.c index 7271a477c041..237c6928d3c6 100644 --- a/fs/reiserfs/xattr_security.c +++ b/fs/reiserfs/xattr_security.c | |||
@@ -111,7 +111,7 @@ void reiserfs_security_free(struct reiserfs_security_handle *sec) | |||
111 | sec->value = NULL; | 111 | sec->value = NULL; |
112 | } | 112 | } |
113 | 113 | ||
114 | struct xattr_handler reiserfs_xattr_security_handler = { | 114 | const struct xattr_handler reiserfs_xattr_security_handler = { |
115 | .prefix = XATTR_SECURITY_PREFIX, | 115 | .prefix = XATTR_SECURITY_PREFIX, |
116 | .get = security_get, | 116 | .get = security_get, |
117 | .set = security_set, | 117 | .set = security_set, |
diff --git a/fs/reiserfs/xattr_trusted.c b/fs/reiserfs/xattr_trusted.c index 5b08aaca3daf..9883736ce3ec 100644 --- a/fs/reiserfs/xattr_trusted.c +++ b/fs/reiserfs/xattr_trusted.c | |||
@@ -48,7 +48,7 @@ static size_t trusted_list(struct dentry *dentry, char *list, size_t list_size, | |||
48 | return len; | 48 | return len; |
49 | } | 49 | } |
50 | 50 | ||
51 | struct xattr_handler reiserfs_xattr_trusted_handler = { | 51 | const struct xattr_handler reiserfs_xattr_trusted_handler = { |
52 | .prefix = XATTR_TRUSTED_PREFIX, | 52 | .prefix = XATTR_TRUSTED_PREFIX, |
53 | .get = trusted_get, | 53 | .get = trusted_get, |
54 | .set = trusted_set, | 54 | .set = trusted_set, |
diff --git a/fs/reiserfs/xattr_user.c b/fs/reiserfs/xattr_user.c index 75d59c49b911..45ae1a00013a 100644 --- a/fs/reiserfs/xattr_user.c +++ b/fs/reiserfs/xattr_user.c | |||
@@ -44,7 +44,7 @@ static size_t user_list(struct dentry *dentry, char *list, size_t list_size, | |||
44 | return len; | 44 | return len; |
45 | } | 45 | } |
46 | 46 | ||
47 | struct xattr_handler reiserfs_xattr_user_handler = { | 47 | const struct xattr_handler reiserfs_xattr_user_handler = { |
48 | .prefix = XATTR_USER_PREFIX, | 48 | .prefix = XATTR_USER_PREFIX, |
49 | .get = user_get, | 49 | .get = user_get, |
50 | .set = user_set, | 50 | .set = user_set, |