X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=fs%2Fsysfs%2Fdir.c;h=4d83cedb9fcb6a98b784bb7e5d67472b9e96e289;hb=6497d160f6abf8d1082ff1a4efd841118cb1fddd;hp=99ec5b40e977730a3613ff295740446e651fba42;hpb=ae67d9a888a000a9df43de10eb9950075e93508c;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c index 99ec5b4..4d83ced 100644 --- a/fs/sysfs/dir.c +++ b/fs/sysfs/dir.c @@ -297,7 +297,6 @@ static int sysfs_dentry_delete(const struct dentry *dentry) static int sysfs_dentry_revalidate(struct dentry *dentry, unsigned int flags) { struct sysfs_dirent *sd; - int is_dir; int type; if (flags & LOOKUP_RCU) @@ -341,18 +340,15 @@ out_bad: * is performed at its new name the dentry will be readded * to the dcache hashes. */ - is_dir = (sysfs_type(sd) == SYSFS_DIR); mutex_unlock(&sysfs_mutex); - if (is_dir) { - /* If we have submounts we must allow the vfs caches - * to lie about the state of the filesystem to prevent - * leaks and other nasty things. - */ - if (have_submounts(dentry)) - goto out_valid; - shrink_dcache_parent(dentry); - } - d_drop(dentry); + + /* If we have submounts we must allow the vfs caches + * to lie about the state of the filesystem to prevent + * leaks and other nasty things. + */ + if (check_submounts_and_drop(dentry) != 0) + goto out_valid; + return 0; }