Loading fs/namei.c +14 −22 Original line number Diff line number Diff line Loading @@ -751,7 +751,10 @@ static int unlazy_walk(struct nameidata *nd, struct dentry *dentry, unsigned seq static inline int d_revalidate(struct dentry *dentry, unsigned int flags) { if (unlikely(dentry->d_flags & DCACHE_OP_REVALIDATE)) return dentry->d_op->d_revalidate(dentry, flags); else return 1; } /** Loading Loading @@ -1454,13 +1457,9 @@ static struct dentry *lookup_dcache(const struct qstr *name, struct dentry *dir, unsigned int flags) { struct dentry *dentry; int error; dentry = d_lookup(dir, name); struct dentry *dentry = d_lookup(dir, name); if (dentry) { if (dentry->d_flags & DCACHE_OP_REVALIDATE) { error = d_revalidate(dentry, flags); int error = d_revalidate(dentry, flags); if (unlikely(error <= 0)) { if (!error) d_invalidate(dentry); Loading @@ -1468,7 +1467,6 @@ static struct dentry *lookup_dcache(const struct qstr *name, return ERR_PTR(error); } } } return dentry; } Loading Loading @@ -1556,7 +1554,6 @@ static int lookup_fast(struct nameidata *nd, return -ECHILD; *seqp = seq; if (unlikely(dentry->d_flags & DCACHE_OP_REVALIDATE)) status = d_revalidate(dentry, nd->flags); if (likely(status > 0)) { /* Loading @@ -1579,7 +1576,6 @@ static int lookup_fast(struct nameidata *nd, dentry = __d_lookup(parent, &nd->last); if (unlikely(!dentry)) return 0; if (unlikely(dentry->d_flags & DCACHE_OP_REVALIDATE)) status = d_revalidate(dentry, nd->flags); } if (unlikely(status <= 0)) { Loading Loading @@ -1619,8 +1615,7 @@ static struct dentry *lookup_slow(const struct qstr *name, if (IS_ERR(dentry)) goto out; if (unlikely(!d_in_lookup(dentry))) { if ((dentry->d_flags & DCACHE_OP_REVALIDATE) && !(flags & LOOKUP_NO_REVAL)) { if (!(flags & LOOKUP_NO_REVAL)) { int error = d_revalidate(dentry, flags); if (unlikely(error <= 0)) { if (!error) { Loading Loading @@ -3057,9 +3052,6 @@ static int lookup_open(struct nameidata *nd, struct path *path, if (d_in_lookup(dentry)) break; if (!(dentry->d_flags & DCACHE_OP_REVALIDATE)) break; error = d_revalidate(dentry, nd->flags); if (likely(error > 0)) break; Loading Loading
fs/namei.c +14 −22 Original line number Diff line number Diff line Loading @@ -751,7 +751,10 @@ static int unlazy_walk(struct nameidata *nd, struct dentry *dentry, unsigned seq static inline int d_revalidate(struct dentry *dentry, unsigned int flags) { if (unlikely(dentry->d_flags & DCACHE_OP_REVALIDATE)) return dentry->d_op->d_revalidate(dentry, flags); else return 1; } /** Loading Loading @@ -1454,13 +1457,9 @@ static struct dentry *lookup_dcache(const struct qstr *name, struct dentry *dir, unsigned int flags) { struct dentry *dentry; int error; dentry = d_lookup(dir, name); struct dentry *dentry = d_lookup(dir, name); if (dentry) { if (dentry->d_flags & DCACHE_OP_REVALIDATE) { error = d_revalidate(dentry, flags); int error = d_revalidate(dentry, flags); if (unlikely(error <= 0)) { if (!error) d_invalidate(dentry); Loading @@ -1468,7 +1467,6 @@ static struct dentry *lookup_dcache(const struct qstr *name, return ERR_PTR(error); } } } return dentry; } Loading Loading @@ -1556,7 +1554,6 @@ static int lookup_fast(struct nameidata *nd, return -ECHILD; *seqp = seq; if (unlikely(dentry->d_flags & DCACHE_OP_REVALIDATE)) status = d_revalidate(dentry, nd->flags); if (likely(status > 0)) { /* Loading @@ -1579,7 +1576,6 @@ static int lookup_fast(struct nameidata *nd, dentry = __d_lookup(parent, &nd->last); if (unlikely(!dentry)) return 0; if (unlikely(dentry->d_flags & DCACHE_OP_REVALIDATE)) status = d_revalidate(dentry, nd->flags); } if (unlikely(status <= 0)) { Loading Loading @@ -1619,8 +1615,7 @@ static struct dentry *lookup_slow(const struct qstr *name, if (IS_ERR(dentry)) goto out; if (unlikely(!d_in_lookup(dentry))) { if ((dentry->d_flags & DCACHE_OP_REVALIDATE) && !(flags & LOOKUP_NO_REVAL)) { if (!(flags & LOOKUP_NO_REVAL)) { int error = d_revalidate(dentry, flags); if (unlikely(error <= 0)) { if (!error) { Loading Loading @@ -3057,9 +3052,6 @@ static int lookup_open(struct nameidata *nd, struct path *path, if (d_in_lookup(dentry)) break; if (!(dentry->d_flags & DCACHE_OP_REVALIDATE)) break; error = d_revalidate(dentry, nd->flags); if (likely(error > 0)) break; Loading