ext4: refactor initialize_dirent_tail()
authorTheodore Ts'o <tytso@mit.edu>
Fri, 21 Jun 2019 20:31:47 +0000 (16:31 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 21 Jun 2019 20:31:47 +0000 (16:31 -0400)
Move the calculation of the location of the dirent tail into
initialize_dirent_tail().  Also prefix the function with ext4_ to fix
kernel namepsace polution.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/ext4.h
fs/ext4/inline.c
fs/ext4/namei.c

index 5b86df7ec326c18f50ca5422aac7a1e3f01a54fd..83128bdd7abb192dc1cb2288cf223ed8f5e15952 100644 (file)
@@ -3147,8 +3147,8 @@ extern struct ext4_dir_entry_2 *ext4_init_dot_dotdot(struct inode *inode,
                                 struct ext4_dir_entry_2 *de,
                                 int blocksize, int csum_size,
                                 unsigned int parent_ino, int dotdot_real_len);
-extern void initialize_dirent_tail(struct ext4_dir_entry_tail *t,
-                                  unsigned int blocksize);
+extern void ext4_initialize_dirent_tail(struct buffer_head *bh,
+                                       unsigned int blocksize);
 extern int ext4_handle_dirty_dirblock(handle_t *handle, struct inode *inode,
                                      struct buffer_head *bh);
 extern int ext4_ci_compare(const struct inode *parent,
index f19dd5a08d0dad4d4dec031364e7915381d447a2..796137bb7dfa047606b571bb25a407c0b4df8830 100644 (file)
@@ -1132,7 +1132,6 @@ static int ext4_finish_convert_inline_dir(handle_t *handle,
 {
        int err, csum_size = 0, header_size = 0;
        struct ext4_dir_entry_2 *de;
-       struct ext4_dir_entry_tail *t;
        void *target = dir_block->b_data;
 
        /*
@@ -1158,11 +1157,9 @@ static int ext4_finish_convert_inline_dir(handle_t *handle,
                        inline_size - EXT4_INLINE_DOTDOT_SIZE + header_size,
                        inode->i_sb->s_blocksize - csum_size);
 
-       if (csum_size) {
-               t = EXT4_DIRENT_TAIL(dir_block->b_data,
-                                    inode->i_sb->s_blocksize);
-               initialize_dirent_tail(t, inode->i_sb->s_blocksize);
-       }
+       if (csum_size)
+               ext4_initialize_dirent_tail(dir_block,
+                                           inode->i_sb->s_blocksize);
        set_buffer_uptodate(dir_block);
        err = ext4_handle_dirty_dirblock(handle, inode, dir_block);
        if (err)
index 4f0bcbbcfe962cae8ff5c8f7db4680c9ba0f65c1..183ad614ae3d564d1f125bbd67b206a1880b3d5c 100644 (file)
@@ -293,9 +293,11 @@ static int ext4_dx_add_entry(handle_t *handle, struct ext4_filename *fname,
                             struct inode *dir, struct inode *inode);
 
 /* checksumming functions */
-void initialize_dirent_tail(struct ext4_dir_entry_tail *t,
-                           unsigned int blocksize)
+void ext4_initialize_dirent_tail(struct buffer_head *bh,
+                                unsigned int blocksize)
 {
+       struct ext4_dir_entry_tail *t = EXT4_DIRENT_TAIL(bh->b_data, blocksize);
+
        memset(t, 0, sizeof(struct ext4_dir_entry_tail));
        t->det_rec_len = ext4_rec_len_to_disk(
                        sizeof(struct ext4_dir_entry_tail), blocksize);
@@ -370,7 +372,7 @@ int ext4_dirblock_csum_verify(struct inode *inode, struct buffer_head *bh)
        }
 
        if (t->det_checksum != ext4_dirblock_csum(inode, bh->b_data,
-                                               (char *)t - bh->b_data))
+                                                 (char *)t - bh->b_data))
                return 0;
 
        return 1;
@@ -391,7 +393,7 @@ static void ext4_dirblock_csum_set(struct inode *inode,
        }
 
        t->det_checksum = ext4_dirblock_csum(inode, bh->b_data,
-                                          (char *)t - bh->b_data);
+                                            (char *)t - bh->b_data);
 }
 
 int ext4_handle_dirty_dirblock(handle_t *handle,
@@ -1813,7 +1815,6 @@ static struct ext4_dir_entry_2 *do_split(handle_t *handle, struct inode *dir,
        char *data1 = (*bh)->b_data, *data2;
        unsigned split, move, size;
        struct ext4_dir_entry_2 *de = NULL, *de2;
-       struct ext4_dir_entry_tail *t;
        int     csum_size = 0;
        int     err = 0, i;
 
@@ -1874,11 +1875,8 @@ static struct ext4_dir_entry_2 *do_split(handle_t *handle, struct inode *dir,
                                            (char *) de2,
                                            blocksize);
        if (csum_size) {
-               t = EXT4_DIRENT_TAIL(data2, blocksize);
-               initialize_dirent_tail(t, blocksize);
-
-               t = EXT4_DIRENT_TAIL(data1, blocksize);
-               initialize_dirent_tail(t, blocksize);
+               ext4_initialize_dirent_tail(*bh, blocksize);
+               ext4_initialize_dirent_tail(bh2, blocksize);
        }
 
        dxtrace(dx_show_leaf(dir, hinfo, (struct ext4_dir_entry_2 *) data1,
@@ -2039,8 +2037,7 @@ static int make_indexed_dir(handle_t *handle, struct ext4_filename *fname,
        struct dx_frame frames[EXT4_HTREE_LEVEL], *frame;
        struct dx_entry *entries;
        struct ext4_dir_entry_2 *de, *de2;
-       struct ext4_dir_entry_tail *t;
-       char            *data1, *top;
+       char            *data2, *top;
        unsigned        len;
        int             retval;
        unsigned        blocksize;
@@ -2080,21 +2077,18 @@ static int make_indexed_dir(handle_t *handle, struct ext4_filename *fname,
                return PTR_ERR(bh2);
        }
        ext4_set_inode_flag(dir, EXT4_INODE_INDEX);
-       data1 = bh2->b_data;
+       data2 = bh2->b_data;
 
-       memcpy (data1, de, len);
-       de = (struct ext4_dir_entry_2 *) data1;
-       top = data1 + len;
+       memcpy(data2, de, len);
+       de = (struct ext4_dir_entry_2 *) data2;
+       top = data2 + len;
        while ((char *)(de2 = ext4_next_entry(de, blocksize)) < top)
                de = de2;
-       de->rec_len = ext4_rec_len_to_disk(data1 + (blocksize - csum_size) -
-                                          (char *) de,
-                                          blocksize);
+       de->rec_len = ext4_rec_len_to_disk(data2 + (blocksize - csum_size) -
+                                          (char *) de, blocksize);
 
-       if (csum_size) {
-               t = EXT4_DIRENT_TAIL(data1, blocksize);
-               initialize_dirent_tail(t, blocksize);
-       }
+       if (csum_size)
+               ext4_initialize_dirent_tail(bh2, blocksize);
 
        /* Initialize the root; the dot dirents already exist */
        de = (struct ext4_dir_entry_2 *) (&root->dotdot);
@@ -2164,7 +2158,6 @@ static int ext4_add_entry(handle_t *handle, struct dentry *dentry,
        struct inode *dir = d_inode(dentry->d_parent);
        struct buffer_head *bh = NULL;
        struct ext4_dir_entry_2 *de;
-       struct ext4_dir_entry_tail *t;
        struct super_block *sb;
        struct ext4_sb_info *sbi;
        struct ext4_filename fname;
@@ -2249,10 +2242,8 @@ add_to_new_block:
        de->inode = 0;
        de->rec_len = ext4_rec_len_to_disk(blocksize - csum_size, blocksize);
 
-       if (csum_size) {
-               t = EXT4_DIRENT_TAIL(bh->b_data, blocksize);
-               initialize_dirent_tail(t, blocksize);
-       }
+       if (csum_size)
+               ext4_initialize_dirent_tail(bh, blocksize);
 
        retval = add_dirent_to_buf(handle, &fname, dir, inode, de, bh);
 out:
@@ -2712,7 +2703,6 @@ static int ext4_init_new_dir(handle_t *handle, struct inode *dir,
 {
        struct buffer_head *dir_block = NULL;
        struct ext4_dir_entry_2 *de;
-       struct ext4_dir_entry_tail *t;
        ext4_lblk_t block = 0;
        unsigned int blocksize = dir->i_sb->s_blocksize;
        int csum_size = 0;
@@ -2736,10 +2726,8 @@ static int ext4_init_new_dir(handle_t *handle, struct inode *dir,
        de = (struct ext4_dir_entry_2 *)dir_block->b_data;
        ext4_init_dot_dotdot(inode, de, blocksize, csum_size, dir->i_ino, 0);
        set_nlink(inode, 2);
-       if (csum_size) {
-               t = EXT4_DIRENT_TAIL(dir_block->b_data, blocksize);
-               initialize_dirent_tail(t, blocksize);
-       }
+       if (csum_size)
+               ext4_initialize_dirent_tail(dir_block, blocksize);
 
        BUFFER_TRACE(dir_block, "call ext4_handle_dirty_metadata");
        err = ext4_handle_dirty_dirblock(handle, inode, dir_block);