From f6337d842668ad47f01d5f2dcd3730484f09d6fa Mon Sep 17 00:00:00 2001 From: Richard Weinberger Date: Mon, 19 Sep 2016 20:54:19 +0200 Subject: [PATCH] ubifs: Export ubifs_check_dir_empty() fscrypto will need this function too. Also get struct ubifs_info from the provided inode. Not all callers will have a reference to struct ubifs_info. Signed-off-by: Richard Weinberger --- fs/ubifs/dir.c | 8 ++++---- fs/ubifs/ubifs.h | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/fs/ubifs/dir.c b/fs/ubifs/dir.c index ca16c5d7bab1..14a226d47f4c 100644 --- a/fs/ubifs/dir.c +++ b/fs/ubifs/dir.c @@ -712,15 +712,15 @@ out_cancel: /** * check_dir_empty - check if a directory is empty or not. - * @c: UBIFS file-system description object * @dir: VFS inode object of the directory to check * * This function checks if directory @dir is empty. Returns zero if the * directory is empty, %-ENOTEMPTY if it is not, and other negative error codes * in case of of errors. */ -static int check_dir_empty(struct ubifs_info *c, struct inode *dir) +int ubifs_check_dir_empty(struct inode *dir) { + struct ubifs_info *c = dir->i_sb->s_fs_info; struct qstr nm = { .name = NULL }; struct ubifs_dent_node *dent; union ubifs_key key; @@ -758,7 +758,7 @@ static int ubifs_rmdir(struct inode *dir, struct dentry *dentry) inode->i_ino, dir->i_ino); ubifs_assert(inode_is_locked(dir)); ubifs_assert(inode_is_locked(inode)); - err = check_dir_empty(c, d_inode(dentry)); + err = ubifs_check_dir_empty(d_inode(dentry)); if (err) return err; @@ -1108,7 +1108,7 @@ static int do_rename(struct inode *old_dir, struct dentry *old_dentry, ubifs_assert(inode_is_locked(new_inode)); if (unlink && is_dir) { - err = check_dir_empty(c, new_inode); + err = ubifs_check_dir_empty(new_inode); if (err) return err; } diff --git a/fs/ubifs/ubifs.h b/fs/ubifs/ubifs.h index b8b18d446a49..fe94300d4c08 100644 --- a/fs/ubifs/ubifs.h +++ b/fs/ubifs/ubifs.h @@ -1728,6 +1728,7 @@ struct inode *ubifs_new_inode(struct ubifs_info *c, const struct inode *dir, umode_t mode); int ubifs_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat); +int ubifs_check_dir_empty(struct inode *dir); /* xattr.c */ extern const struct xattr_handler *ubifs_xattr_handlers[];