lkml.org 
[lkml]   [2011]   [Jan]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    SubjectRe: vfs-scale, nd->inode after __do_follow_link()
    Date

    "J. R. Okajima":
    > Isn't it path.dentry->d_inode instead of nd.inode?

    There is another one just after.

    J. R. Okajima

    diff --git a/fs/namei.c b/fs/namei.c
    index 5bb7588..03e45ae 100644
    --- a/fs/namei.c
    +++ b/fs/namei.c
    @@ -2356,8 +2374,9 @@ reval:
    goto exit_dput;
    error = __do_follow_link(&path, &nd, &cookie);
    if (unlikely(error)) {
    - if (!IS_ERR(cookie) && nd.inode->i_op->put_link)
    - nd.inode->i_op->put_link(path.dentry, &nd, cookie);
    + struct inode *i = path.dentry->d_inode;
    + if (!IS_ERR(cookie) && i->i_op->put_link)
    + i->i_op->put_link(path.dentry, &nd, cookie);
    /* nd.path had been dropped */
    nd.path = path;
    goto out_path;
    @@ -2365,8 +2384,11 @@ reval:
    holder = path;
    nd.flags &= ~LOOKUP_PARENT;
    filp = do_last(&nd, &path, open_flag, acc_mode, mode, pathname);
    - if (nd.inode->i_op->put_link)
    - nd.inode->i_op->put_link(holder.dentry, &nd, cookie);
    + {
    + struct inode *i = holder.dentry->d_inode;
    + if (i->i_op->put_link)
    + i->i_op->put_link(holder.dentry, &nd, cookie);
    + }
    path_put(&holder);
    }
    out:

    \
     
     \ /
      Last update: 2011-01-14 03:37    [W:0.024 / U:0.548 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site