diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-21 22:37:45 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-21 22:37:45 -0400 |
| commit | e8bebe2f71d26871b0970ae1d9cf0ed3cdd9569d (patch) | |
| tree | c0d82cbd11daaf579b74121c6641d58947091094 /fs/ext3 | |
| parent | 6109e2ce2600e2db26cd0424bb9c6ed019723288 (diff) | |
| parent | 82f3952c02add60b15eea9151d4d99b6b82066c6 (diff) | |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (69 commits)
fix handling of offsets in cris eeprom.c, get rid of fake on-stack files
get rid of home-grown mutex in cris eeprom.c
switch ecryptfs_write() to struct inode *, kill on-stack fake files
switch ecryptfs_get_locked_page() to struct inode *
simplify access to ecryptfs inodes in ->readpage() and friends
AFS: Don't put struct file on the stack
Ban ecryptfs over ecryptfs
logfs: replace inode uid,gid,mode initialization with helper function
ufs: replace inode uid,gid,mode initialization with helper function
udf: replace inode uid,gid,mode init with helper
ubifs: replace inode uid,gid,mode initialization with helper function
sysv: replace inode uid,gid,mode initialization with helper function
reiserfs: replace inode uid,gid,mode initialization with helper function
ramfs: replace inode uid,gid,mode initialization with helper function
omfs: replace inode uid,gid,mode initialization with helper function
bfs: replace inode uid,gid,mode initialization with helper function
ocfs2: replace inode uid,gid,mode initialization with helper function
nilfs2: replace inode uid,gid,mode initialization with helper function
minix: replace inode uid,gid,mode init with helper
ext4: replace inode uid,gid,mode init with helper
...
Trivial conflict in fs/fs-writeback.c (mark bitfields unsigned)
Diffstat (limited to 'fs/ext3')
| -rw-r--r-- | fs/ext3/acl.c | 4 | ||||
| -rw-r--r-- | fs/ext3/ialloc.c | 13 | ||||
| -rw-r--r-- | fs/ext3/xattr.c | 10 | ||||
| -rw-r--r-- | fs/ext3/xattr.h | 12 | ||||
| -rw-r--r-- | fs/ext3/xattr_security.c | 2 | ||||
| -rw-r--r-- | fs/ext3/xattr_trusted.c | 2 | ||||
| -rw-r--r-- | fs/ext3/xattr_user.c | 2 |
7 files changed, 21 insertions, 24 deletions
diff --git a/fs/ext3/acl.c b/fs/ext3/acl.c index 82ba3415866..01552abbca3 100644 --- a/fs/ext3/acl.c +++ b/fs/ext3/acl.c | |||
| @@ -456,7 +456,7 @@ release_and_out: | |||
| 456 | return error; | 456 | return error; |
| 457 | } | 457 | } |
| 458 | 458 | ||
| 459 | struct xattr_handler ext3_xattr_acl_access_handler = { | 459 | const struct xattr_handler ext3_xattr_acl_access_handler = { |
| 460 | .prefix = POSIX_ACL_XATTR_ACCESS, | 460 | .prefix = POSIX_ACL_XATTR_ACCESS, |
| 461 | .flags = ACL_TYPE_ACCESS, | 461 | .flags = ACL_TYPE_ACCESS, |
| 462 | .list = ext3_xattr_list_acl_access, | 462 | .list = ext3_xattr_list_acl_access, |
| @@ -464,7 +464,7 @@ struct xattr_handler ext3_xattr_acl_access_handler = { | |||
| 464 | .set = ext3_xattr_set_acl, | 464 | .set = ext3_xattr_set_acl, |
| 465 | }; | 465 | }; |
| 466 | 466 | ||
| 467 | struct xattr_handler ext3_xattr_acl_default_handler = { | 467 | const struct xattr_handler ext3_xattr_acl_default_handler = { |
| 468 | .prefix = POSIX_ACL_XATTR_DEFAULT, | 468 | .prefix = POSIX_ACL_XATTR_DEFAULT, |
| 469 | .flags = ACL_TYPE_DEFAULT, | 469 | .flags = ACL_TYPE_DEFAULT, |
| 470 | .list = ext3_xattr_list_acl_default, | 470 | .list = ext3_xattr_list_acl_default, |
diff --git a/fs/ext3/ialloc.c b/fs/ext3/ialloc.c index 0d0e97ed3ff..498021eb88f 100644 --- a/fs/ext3/ialloc.c +++ b/fs/ext3/ialloc.c | |||
| @@ -538,16 +538,13 @@ got: | |||
| 538 | if (S_ISDIR(mode)) | 538 | if (S_ISDIR(mode)) |
| 539 | percpu_counter_inc(&sbi->s_dirs_counter); | 539 | percpu_counter_inc(&sbi->s_dirs_counter); |
| 540 | 540 | ||
| 541 | inode->i_uid = current_fsuid(); | 541 | |
| 542 | if (test_opt (sb, GRPID)) | 542 | if (test_opt(sb, GRPID)) { |
| 543 | inode->i_gid = dir->i_gid; | 543 | inode->i_mode = mode; |
| 544 | else if (dir->i_mode & S_ISGID) { | 544 | inode->i_uid = current_fsuid(); |
| 545 | inode->i_gid = dir->i_gid; | 545 | inode->i_gid = dir->i_gid; |
| 546 | if (S_ISDIR(mode)) | ||
| 547 | mode |= S_ISGID; | ||
| 548 | } else | 546 | } else |
| 549 | inode->i_gid = current_fsgid(); | 547 | inode_init_owner(inode, dir, mode); |
| 550 | inode->i_mode = mode; | ||
| 551 | 548 | ||
| 552 | inode->i_ino = ino; | 549 | inode->i_ino = ino; |
| 553 | /* This is the optimal IO size (for stat), not the fs block size */ | 550 | /* This is the optimal IO size (for stat), not the fs block size */ |
diff --git a/fs/ext3/xattr.c b/fs/ext3/xattr.c index 534a94c3a93..71fb8d65e54 100644 --- a/fs/ext3/xattr.c +++ b/fs/ext3/xattr.c | |||
| @@ -104,7 +104,7 @@ static int ext3_xattr_list(struct dentry *dentry, char *buffer, | |||
| 104 | 104 | ||
| 105 | static struct mb_cache *ext3_xattr_cache; | 105 | static struct mb_cache *ext3_xattr_cache; |
| 106 | 106 | ||
| 107 | static struct xattr_handler *ext3_xattr_handler_map[] = { | 107 | static const struct xattr_handler *ext3_xattr_handler_map[] = { |
| 108 | [EXT3_XATTR_INDEX_USER] = &ext3_xattr_user_handler, | 108 | [EXT3_XATTR_INDEX_USER] = &ext3_xattr_user_handler, |
| 109 | #ifdef CONFIG_EXT3_FS_POSIX_ACL | 109 | #ifdef CONFIG_EXT3_FS_POSIX_ACL |
| 110 | [EXT3_XATTR_INDEX_POSIX_ACL_ACCESS] = &ext3_xattr_acl_access_handler, | 110 | [EXT3_XATTR_INDEX_POSIX_ACL_ACCESS] = &ext3_xattr_acl_access_handler, |
| @@ -116,7 +116,7 @@ static struct xattr_handler *ext3_xattr_handler_map[] = { | |||
| 116 | #endif | 116 | #endif |
| 117 | }; | 117 | }; |
| 118 | 118 | ||
| 119 | struct xattr_handler *ext3_xattr_handlers[] = { | 119 | const struct xattr_handler *ext3_xattr_handlers[] = { |
| 120 | &ext3_xattr_user_handler, | 120 | &ext3_xattr_user_handler, |
| 121 | &ext3_xattr_trusted_handler, | 121 | &ext3_xattr_trusted_handler, |
| 122 | #ifdef CONFIG_EXT3_FS_POSIX_ACL | 122 | #ifdef CONFIG_EXT3_FS_POSIX_ACL |
| @@ -129,10 +129,10 @@ struct xattr_handler *ext3_xattr_handlers[] = { | |||
| 129 | NULL | 129 | NULL |
| 130 | }; | 130 | }; |
| 131 | 131 | ||
| 132 | static inline struct xattr_handler * | 132 | static inline const struct xattr_handler * |
| 133 | ext3_xattr_handler(int name_index) | 133 | ext3_xattr_handler(int name_index) |
| 134 | { | 134 | { |
| 135 | struct xattr_handler *handler = NULL; | 135 | const struct xattr_handler *handler = NULL; |
| 136 | 136 | ||
| 137 | if (name_index > 0 && name_index < ARRAY_SIZE(ext3_xattr_handler_map)) | 137 | if (name_index > 0 && name_index < ARRAY_SIZE(ext3_xattr_handler_map)) |
| 138 | handler = ext3_xattr_handler_map[name_index]; | 138 | handler = ext3_xattr_handler_map[name_index]; |
| @@ -338,7 +338,7 @@ ext3_xattr_list_entries(struct dentry *dentry, struct ext3_xattr_entry *entry, | |||
| 338 | size_t rest = buffer_size; | 338 | size_t rest = buffer_size; |
| 339 | 339 | ||
| 340 | for (; !IS_LAST_ENTRY(entry); entry = EXT3_XATTR_NEXT(entry)) { | 340 | for (; !IS_LAST_ENTRY(entry); entry = EXT3_XATTR_NEXT(entry)) { |
| 341 | struct xattr_handler *handler = | 341 | const struct xattr_handler *handler = |
| 342 | ext3_xattr_handler(entry->e_name_index); | 342 | ext3_xattr_handler(entry->e_name_index); |
| 343 | 343 | ||
| 344 | if (handler) { | 344 | if (handler) { |
diff --git a/fs/ext3/xattr.h b/fs/ext3/xattr.h index 148a4dfc82a..377fe720116 100644 --- a/fs/ext3/xattr.h +++ b/fs/ext3/xattr.h | |||
| @@ -58,11 +58,11 @@ struct ext3_xattr_entry { | |||
| 58 | 58 | ||
| 59 | # ifdef CONFIG_EXT3_FS_XATTR | 59 | # ifdef CONFIG_EXT3_FS_XATTR |
| 60 | 60 | ||
| 61 | extern struct xattr_handler ext3_xattr_user_handler; | 61 | extern const struct xattr_handler ext3_xattr_user_handler; |
| 62 | extern struct xattr_handler ext3_xattr_trusted_handler; | 62 | extern const struct xattr_handler ext3_xattr_trusted_handler; |
| 63 | extern struct xattr_handler ext3_xattr_acl_access_handler; | 63 | extern const struct xattr_handler ext3_xattr_acl_access_handler; |
| 64 | extern struct xattr_handler ext3_xattr_acl_default_handler; | 64 | extern const struct xattr_handler ext3_xattr_acl_default_handler; |
| 65 | extern struct xattr_handler ext3_xattr_security_handler; | 65 | extern const struct xattr_handler ext3_xattr_security_handler; |
| 66 | 66 | ||
| 67 | extern ssize_t ext3_listxattr(struct dentry *, char *, size_t); | 67 | extern ssize_t ext3_listxattr(struct dentry *, char *, size_t); |
| 68 | 68 | ||
| @@ -76,7 +76,7 @@ extern void ext3_xattr_put_super(struct super_block *); | |||
| 76 | extern int init_ext3_xattr(void); | 76 | extern int init_ext3_xattr(void); |
| 77 | extern void exit_ext3_xattr(void); | 77 | extern void exit_ext3_xattr(void); |
| 78 | 78 | ||
| 79 | extern struct xattr_handler *ext3_xattr_handlers[]; | 79 | extern const struct xattr_handler *ext3_xattr_handlers[]; |
| 80 | 80 | ||
| 81 | # else /* CONFIG_EXT3_FS_XATTR */ | 81 | # else /* CONFIG_EXT3_FS_XATTR */ |
| 82 | 82 | ||
diff --git a/fs/ext3/xattr_security.c b/fs/ext3/xattr_security.c index 3af91f476df..03a99bfc59f 100644 --- a/fs/ext3/xattr_security.c +++ b/fs/ext3/xattr_security.c | |||
| @@ -69,7 +69,7 @@ ext3_init_security(handle_t *handle, struct inode *inode, struct inode *dir) | |||
| 69 | return err; | 69 | return err; |
| 70 | } | 70 | } |
| 71 | 71 | ||
| 72 | struct xattr_handler ext3_xattr_security_handler = { | 72 | const struct xattr_handler ext3_xattr_security_handler = { |
| 73 | .prefix = XATTR_SECURITY_PREFIX, | 73 | .prefix = XATTR_SECURITY_PREFIX, |
| 74 | .list = ext3_xattr_security_list, | 74 | .list = ext3_xattr_security_list, |
| 75 | .get = ext3_xattr_security_get, | 75 | .get = ext3_xattr_security_get, |
diff --git a/fs/ext3/xattr_trusted.c b/fs/ext3/xattr_trusted.c index e5562845ed9..dc8edda9ffe 100644 --- a/fs/ext3/xattr_trusted.c +++ b/fs/ext3/xattr_trusted.c | |||
| @@ -51,7 +51,7 @@ ext3_xattr_trusted_set(struct dentry *dentry, const char *name, | |||
| 51 | value, size, flags); | 51 | value, size, flags); |
| 52 | } | 52 | } |
| 53 | 53 | ||
| 54 | struct xattr_handler ext3_xattr_trusted_handler = { | 54 | const struct xattr_handler ext3_xattr_trusted_handler = { |
| 55 | .prefix = XATTR_TRUSTED_PREFIX, | 55 | .prefix = XATTR_TRUSTED_PREFIX, |
| 56 | .list = ext3_xattr_trusted_list, | 56 | .list = ext3_xattr_trusted_list, |
| 57 | .get = ext3_xattr_trusted_get, | 57 | .get = ext3_xattr_trusted_get, |
diff --git a/fs/ext3/xattr_user.c b/fs/ext3/xattr_user.c index 3bcfe9ee0a6..7a321974d58 100644 --- a/fs/ext3/xattr_user.c +++ b/fs/ext3/xattr_user.c | |||
| @@ -54,7 +54,7 @@ ext3_xattr_user_set(struct dentry *dentry, const char *name, | |||
| 54 | name, value, size, flags); | 54 | name, value, size, flags); |
| 55 | } | 55 | } |
| 56 | 56 | ||
| 57 | struct xattr_handler ext3_xattr_user_handler = { | 57 | const struct xattr_handler ext3_xattr_user_handler = { |
| 58 | .prefix = XATTR_USER_PREFIX, | 58 | .prefix = XATTR_USER_PREFIX, |
| 59 | .list = ext3_xattr_user_list, | 59 | .list = ext3_xattr_user_list, |
| 60 | .get = ext3_xattr_user_get, | 60 | .get = ext3_xattr_user_get, |
