Loading fs/namei.c +6 −8 Original line number Diff line number Diff line Loading @@ -1558,12 +1558,7 @@ static int lookup_fast(struct nameidata *nd, *seqp = seq; if (unlikely(dentry->d_flags & DCACHE_OP_REVALIDATE)) status = d_revalidate(dentry, nd->flags); if (unlikely(status <= 0)) { if (unlazy_walk(nd, dentry, seq)) return -ECHILD; if (status == -ECHILD) status = d_revalidate(dentry, nd->flags); } else { if (likely(status > 0)) { /* * Note: do negative dentry check after revalidation in * case that drops it. Loading @@ -1574,9 +1569,12 @@ static int lookup_fast(struct nameidata *nd, path->dentry = dentry; if (likely(__follow_mount_rcu(nd, path, inode, seqp))) return 1; } if (unlazy_walk(nd, dentry, seq)) return -ECHILD; } if (unlikely(status == -ECHILD)) /* we'd been told to redo it in non-rcu mode */ status = d_revalidate(dentry, nd->flags); } else { dentry = __d_lookup(parent, &nd->last); if (unlikely(!dentry)) Loading Loading
fs/namei.c +6 −8 Original line number Diff line number Diff line Loading @@ -1558,12 +1558,7 @@ static int lookup_fast(struct nameidata *nd, *seqp = seq; if (unlikely(dentry->d_flags & DCACHE_OP_REVALIDATE)) status = d_revalidate(dentry, nd->flags); if (unlikely(status <= 0)) { if (unlazy_walk(nd, dentry, seq)) return -ECHILD; if (status == -ECHILD) status = d_revalidate(dentry, nd->flags); } else { if (likely(status > 0)) { /* * Note: do negative dentry check after revalidation in * case that drops it. Loading @@ -1574,9 +1569,12 @@ static int lookup_fast(struct nameidata *nd, path->dentry = dentry; if (likely(__follow_mount_rcu(nd, path, inode, seqp))) return 1; } if (unlazy_walk(nd, dentry, seq)) return -ECHILD; } if (unlikely(status == -ECHILD)) /* we'd been told to redo it in non-rcu mode */ status = d_revalidate(dentry, nd->flags); } else { dentry = __d_lookup(parent, &nd->last); if (unlikely(!dentry)) Loading