aboutsummaryrefslogtreecommitdiffstats
path: root/fs/reiserfs/inode.c
diff options
context:
space:
mode:
authorJeff Mahoney <jeffm@suse.com>2009-03-30 14:02:41 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-03-30 15:16:39 -0400
commit57fe60df62410f949da094d06ced1dda9575b69c (patch)
treef3ba5db112cd7d2a8865d16bece28c38a766145c /fs/reiserfs/inode.c
parenta41f1a4715f26f7bc4d047d0bc7710145c8e69c7 (diff)
reiserfs: add atomic addition of selinux attributes during inode creation
Some time ago, some changes were made to make security inode attributes be atomically written during inode creation. ReiserFS fell behind in this area, but with the reworking of the xattr code, it's now fairly easy to add. The following patch adds the ability for security attributes to be added automatically during inode creation. Signed-off-by: Jeff Mahoney <jeffm@suse.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/reiserfs/inode.c')
-rw-r--r--fs/reiserfs/inode.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/fs/reiserfs/inode.c b/fs/reiserfs/inode.c
index 995f6975cae1..fcd302d81447 100644
--- a/fs/reiserfs/inode.c
+++ b/fs/reiserfs/inode.c
@@ -1747,7 +1747,8 @@ int reiserfs_new_inode(struct reiserfs_transaction_handle *th,
1747 /* 0 for regular, EMTRY_DIR_SIZE for dirs, 1747 /* 0 for regular, EMTRY_DIR_SIZE for dirs,
1748 strlen (symname) for symlinks) */ 1748 strlen (symname) for symlinks) */
1749 loff_t i_size, struct dentry *dentry, 1749 loff_t i_size, struct dentry *dentry,
1750 struct inode *inode) 1750 struct inode *inode,
1751 struct reiserfs_security_handle *security)
1751{ 1752{
1752 struct super_block *sb; 1753 struct super_block *sb;
1753 struct reiserfs_iget_args args; 1754 struct reiserfs_iget_args args;
@@ -1929,6 +1930,19 @@ int reiserfs_new_inode(struct reiserfs_transaction_handle *th,
1929 } else if (IS_PRIVATE(dir)) 1930 } else if (IS_PRIVATE(dir))
1930 inode->i_flags |= S_PRIVATE; 1931 inode->i_flags |= S_PRIVATE;
1931 1932
1933 if (security->name) {
1934 retval = reiserfs_security_write(th, inode, security);
1935 if (retval) {
1936 err = retval;
1937 reiserfs_check_path(&path_to_key);
1938 retval = journal_end(th, th->t_super,
1939 th->t_blocks_allocated);
1940 if (retval)
1941 err = retval;
1942 goto out_inserted_sd;
1943 }
1944 }
1945
1932 reiserfs_update_sd(th, inode); 1946 reiserfs_update_sd(th, inode);
1933 reiserfs_check_path(&path_to_key); 1947 reiserfs_check_path(&path_to_key);
1934 1948