summaryrefslogtreecommitdiffstats
path: root/fs/ext4/namei.c
diff options
context:
space:
mode:
authorEric Biggers <ebiggers@google.com>2017-04-29 23:27:26 -0400
committerTheodore Ts'o <tytso@mit.edu>2017-04-29 23:27:26 -0400
commit1bc0af600b011dbbf9bbf39664b858ea2e365729 (patch)
treefd59ad97664de94f429398d0557aa7289d19fc24 /fs/ext4/namei.c
parent5052b069acf73866d00077d8bc49983c3ee903e5 (diff)
ext4: trim return value and 'dir' argument from ext4_insert_dentry()
In the initial implementation of ext4 encryption, the filename was encrypted in ext4_insert_dentry(), which could fail and also required access to the 'dir' inode. Since then ext4 filename encryption has been changed to encrypt the filename earlier, so we can revert the additions to ext4_insert_dentry(). Signed-off-by: Eric Biggers <ebiggers@google.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'fs/ext4/namei.c')
-rw-r--r--fs/ext4/namei.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
index 07e5e1405771..6577a3c45815 100644
--- a/fs/ext4/namei.c
+++ b/fs/ext4/namei.c
@@ -1869,11 +1869,10 @@ return_result:
1869 return res; 1869 return res;
1870} 1870}
1871 1871
1872int ext4_insert_dentry(struct inode *dir, 1872void ext4_insert_dentry(struct inode *inode,
1873 struct inode *inode, 1873 struct ext4_dir_entry_2 *de,
1874 struct ext4_dir_entry_2 *de, 1874 int buf_size,
1875 int buf_size, 1875 struct ext4_filename *fname)
1876 struct ext4_filename *fname)
1877{ 1876{
1878 1877
1879 int nlen, rlen; 1878 int nlen, rlen;
@@ -1892,7 +1891,6 @@ int ext4_insert_dentry(struct inode *dir,
1892 ext4_set_de_type(inode->i_sb, de, inode->i_mode); 1891 ext4_set_de_type(inode->i_sb, de, inode->i_mode);
1893 de->name_len = fname_len(fname); 1892 de->name_len = fname_len(fname);
1894 memcpy(de->name, fname_name(fname), fname_len(fname)); 1893 memcpy(de->name, fname_name(fname), fname_len(fname));
1895 return 0;
1896} 1894}
1897 1895
1898/* 1896/*
@@ -1928,11 +1926,8 @@ static int add_dirent_to_buf(handle_t *handle, struct ext4_filename *fname,
1928 return err; 1926 return err;
1929 } 1927 }
1930 1928
1931 /* By now the buffer is marked for journaling. Due to crypto operations, 1929 /* By now the buffer is marked for journaling */
1932 * the following function call may fail */ 1930 ext4_insert_dentry(inode, de, blocksize, fname);
1933 err = ext4_insert_dentry(dir, inode, de, blocksize, fname);
1934 if (err < 0)
1935 return err;
1936 1931
1937 /* 1932 /*
1938 * XXX shouldn't update any times until successful 1933 * XXX shouldn't update any times until successful