diff options
author | Michael Halcrow <mhalcrow@google.com> | 2015-04-11 14:46:49 +0300 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2015-04-11 14:46:49 +0300 |
commit | e875a2ddba06ff8e84d4ce1c2bf69b67e4bf3678 (patch) | |
tree | ba6b2c75e715cf1a399c3c5e0706d91c39217114 /fs/ext4 | |
parent | b17655fb7f4a1d27c1e50dcc28268612da944a54 (diff) | |
download | linux-e875a2ddba06ff8e84d4ce1c2bf69b67e4bf3678.tar.xz |
ext4 crypto: export ext4_empty_dir()
Required for future encryption xattr changes.
Signed-off-by: Michael Halcrow <mhalcrow@google.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'fs/ext4')
-rw-r--r-- | fs/ext4/ext4.h | 1 | ||||
-rw-r--r-- | fs/ext4/namei.c | 11 |
2 files changed, 7 insertions, 5 deletions
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h index e1683829b2b5..180111de2302 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h @@ -2199,6 +2199,7 @@ extern int ext4_generic_delete_entry(handle_t *handle, void *entry_buf, int buf_size, int csum_size); +extern int ext4_empty_dir(struct inode *inode); /* resize.c */ extern int ext4_group_add(struct super_block *sb, diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c index 23a0b9bf822d..0dbd2d2937f7 100644 --- a/fs/ext4/namei.c +++ b/fs/ext4/namei.c @@ -2457,7 +2457,7 @@ out_stop: /* * routine to check that the specified directory is empty (for rmdir) */ -static int empty_dir(struct inode *inode) +int ext4_empty_dir(struct inode *inode) { unsigned int offset; struct buffer_head *bh; @@ -2725,7 +2725,7 @@ static int ext4_rmdir(struct inode *dir, struct dentry *dentry) goto end_rmdir; retval = -ENOTEMPTY; - if (!empty_dir(inode)) + if (!ext4_empty_dir(inode)) goto end_rmdir; handle = ext4_journal_start(dir, EXT4_HT_DIR, @@ -3285,7 +3285,7 @@ static int ext4_rename(struct inode *old_dir, struct dentry *old_dentry, if (S_ISDIR(old.inode->i_mode)) { if (new.inode) { retval = -ENOTEMPTY; - if (!empty_dir(new.inode)) + if (!ext4_empty_dir(new.inode)) goto end_rename; } else { retval = -EMLINK; @@ -3359,8 +3359,9 @@ static int ext4_rename(struct inode *old_dir, struct dentry *old_dentry, ext4_dec_count(handle, old.dir); if (new.inode) { - /* checked empty_dir above, can't have another parent, - * ext4_dec_count() won't work for many-linked dirs */ + /* checked ext4_empty_dir above, can't have another + * parent, ext4_dec_count() won't work for many-linked + * dirs */ clear_nlink(new.inode); } else { ext4_inc_count(handle, new.dir); |