Commit e875a2dd authored by Michael Halcrow's avatar Michael Halcrow Committed by Theodore Ts'o

ext4 crypto: export ext4_empty_dir()

Required for future encryption xattr changes.
Signed-off-by: default avatarMichael Halcrow <mhalcrow@google.com>
Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
parent b17655fb
...@@ -2199,6 +2199,7 @@ extern int ext4_generic_delete_entry(handle_t *handle, ...@@ -2199,6 +2199,7 @@ extern int ext4_generic_delete_entry(handle_t *handle,
void *entry_buf, void *entry_buf,
int buf_size, int buf_size,
int csum_size); int csum_size);
extern int ext4_empty_dir(struct inode *inode);
/* resize.c */ /* resize.c */
extern int ext4_group_add(struct super_block *sb, extern int ext4_group_add(struct super_block *sb,
......
...@@ -2457,7 +2457,7 @@ static int ext4_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) ...@@ -2457,7 +2457,7 @@ static int ext4_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
/* /*
* routine to check that the specified directory is empty (for rmdir) * 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; unsigned int offset;
struct buffer_head *bh; struct buffer_head *bh;
...@@ -2725,7 +2725,7 @@ static int ext4_rmdir(struct inode *dir, struct dentry *dentry) ...@@ -2725,7 +2725,7 @@ static int ext4_rmdir(struct inode *dir, struct dentry *dentry)
goto end_rmdir; goto end_rmdir;
retval = -ENOTEMPTY; retval = -ENOTEMPTY;
if (!empty_dir(inode)) if (!ext4_empty_dir(inode))
goto end_rmdir; goto end_rmdir;
handle = ext4_journal_start(dir, EXT4_HT_DIR, handle = ext4_journal_start(dir, EXT4_HT_DIR,
...@@ -3285,7 +3285,7 @@ static int ext4_rename(struct inode *old_dir, struct dentry *old_dentry, ...@@ -3285,7 +3285,7 @@ static int ext4_rename(struct inode *old_dir, struct dentry *old_dentry,
if (S_ISDIR(old.inode->i_mode)) { if (S_ISDIR(old.inode->i_mode)) {
if (new.inode) { if (new.inode) {
retval = -ENOTEMPTY; retval = -ENOTEMPTY;
if (!empty_dir(new.inode)) if (!ext4_empty_dir(new.inode))
goto end_rename; goto end_rename;
} else { } else {
retval = -EMLINK; retval = -EMLINK;
...@@ -3359,8 +3359,9 @@ static int ext4_rename(struct inode *old_dir, struct dentry *old_dentry, ...@@ -3359,8 +3359,9 @@ static int ext4_rename(struct inode *old_dir, struct dentry *old_dentry,
ext4_dec_count(handle, old.dir); ext4_dec_count(handle, old.dir);
if (new.inode) { if (new.inode) {
/* checked empty_dir above, can't have another parent, /* checked ext4_empty_dir above, can't have another
* ext4_dec_count() won't work for many-linked dirs */ * parent, ext4_dec_count() won't work for many-linked
* dirs */
clear_nlink(new.inode); clear_nlink(new.inode);
} else { } else {
ext4_inc_count(handle, new.dir); ext4_inc_count(handle, new.dir);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment