ANDROID: sdcardfs: Call lower fs's revalidate
authorDaniel Rosenberg <drosen@google.com>
Tue, 25 Apr 2017 02:49:02 +0000 (19:49 -0700)
committerAmit Pundir <amit.pundir@linaro.org>
Mon, 1 May 2017 09:59:33 +0000 (15:29 +0530)
We should be calling the lower filesystem's revalidate
inside of sdcardfs's revalidate, as wrapfs does.

Signed-off-by: Daniel Rosenberg <drosen@google.com>
Bug: 35766959
Change-Id: I939d1c4192fafc1e21678aeab43fe3d588b8e2f4

fs/sdcardfs/dentry.c

index 8e31d1a80f0cbfcee1d1705d9333bac6b61b9570..7a19e77fce99ad9165ae4e92882636430eaa844e 100644 (file)
@@ -60,6 +60,14 @@ static int sdcardfs_d_revalidate(struct dentry *dentry, unsigned int flags)
        lower_dentry = lower_path.dentry;
        lower_cur_parent_dentry = dget_parent(lower_dentry);
 
+       if ((lower_dentry->d_flags & DCACHE_OP_REVALIDATE)) {
+               err = lower_dentry->d_op->d_revalidate(lower_dentry, flags);
+               if (err == 0) {
+                       d_drop(dentry);
+                       goto out;
+               }
+       }
+
        spin_lock(&lower_dentry->d_lock);
        if (d_unhashed(lower_dentry)) {
                spin_unlock(&lower_dentry->d_lock);