Loading fs/namei.c +16 −15 Original line number Diff line number Diff line Loading @@ -1259,9 +1259,15 @@ static int do_lookup(struct nameidata *nd, struct qstr *name, return -ECHILD; nd->seq = seq; if (dentry->d_flags & DCACHE_OP_REVALIDATE) goto need_revalidate; done2: if (unlikely(dentry->d_flags & DCACHE_OP_REVALIDATE)) { dentry = do_revalidate(dentry, nd); if (!dentry) goto need_lookup; if (IS_ERR(dentry)) goto fail; if (!(nd->flags & LOOKUP_RCU)) goto done; } path->mnt = mnt; path->dentry = dentry; if (likely(__follow_mount_rcu(nd, path, inode, false))) Loading @@ -1274,8 +1280,13 @@ static int do_lookup(struct nameidata *nd, struct qstr *name, if (!dentry) goto need_lookup; found: if (dentry->d_flags & DCACHE_OP_REVALIDATE) goto need_revalidate; if (unlikely(dentry->d_flags & DCACHE_OP_REVALIDATE)) { dentry = do_revalidate(dentry, nd); if (!dentry) goto need_lookup; if (IS_ERR(dentry)) goto fail; } done: path->mnt = mnt; path->dentry = dentry; Loading Loading @@ -1317,16 +1328,6 @@ static int do_lookup(struct nameidata *nd, struct qstr *name, mutex_unlock(&dir->i_mutex); goto found; need_revalidate: dentry = do_revalidate(dentry, nd); if (!dentry) goto need_lookup; if (IS_ERR(dentry)) goto fail; if (nd->flags & LOOKUP_RCU) goto done2; goto done; fail: return PTR_ERR(dentry); } Loading Loading
fs/namei.c +16 −15 Original line number Diff line number Diff line Loading @@ -1259,9 +1259,15 @@ static int do_lookup(struct nameidata *nd, struct qstr *name, return -ECHILD; nd->seq = seq; if (dentry->d_flags & DCACHE_OP_REVALIDATE) goto need_revalidate; done2: if (unlikely(dentry->d_flags & DCACHE_OP_REVALIDATE)) { dentry = do_revalidate(dentry, nd); if (!dentry) goto need_lookup; if (IS_ERR(dentry)) goto fail; if (!(nd->flags & LOOKUP_RCU)) goto done; } path->mnt = mnt; path->dentry = dentry; if (likely(__follow_mount_rcu(nd, path, inode, false))) Loading @@ -1274,8 +1280,13 @@ static int do_lookup(struct nameidata *nd, struct qstr *name, if (!dentry) goto need_lookup; found: if (dentry->d_flags & DCACHE_OP_REVALIDATE) goto need_revalidate; if (unlikely(dentry->d_flags & DCACHE_OP_REVALIDATE)) { dentry = do_revalidate(dentry, nd); if (!dentry) goto need_lookup; if (IS_ERR(dentry)) goto fail; } done: path->mnt = mnt; path->dentry = dentry; Loading Loading @@ -1317,16 +1328,6 @@ static int do_lookup(struct nameidata *nd, struct qstr *name, mutex_unlock(&dir->i_mutex); goto found; need_revalidate: dentry = do_revalidate(dentry, nd); if (!dentry) goto need_lookup; if (IS_ERR(dentry)) goto fail; if (nd->flags & LOOKUP_RCU) goto done2; goto done; fail: return PTR_ERR(dentry); } Loading