Re: [PATCH v3 109/110] namei: handle absolute symlinks without dropping out of RCU mode

From: Al Viro
Date: Fri May 15 2015 - 01:11:17 EST


On Mon, May 11, 2015 at 07:08:09PM +0100, Al Viro wrote:
> @@ -499,7 +499,7 @@ struct nameidata {
> struct path root;
> struct inode *inode; /* path.dentry.d_inode */
> unsigned int flags;
> - unsigned seq, m_seq;
> + unsigned seq, m_seq, root_seq;
> int last_type;
> unsigned depth;
> int total_link_count;
> @@ -780,14 +780,14 @@ static __always_inline void set_root(struct nameidata *nd)
> static __always_inline unsigned set_root_rcu(struct nameidata *nd)
> {
> struct fs_struct *fs = current->fs;
> - unsigned seq, res;
> + unsigned seq;
>
> do {
> seq = read_seqcount_begin(&fs->seq);
> nd->root = fs->root;
> - res = __read_seqcount_begin(&nd->root.dentry->d_seq);
> + nd->root_seq = __read_seqcount_begin(&nd->root.dentry->d_seq);

nd->root_seq is also needed in LOOKUP_ROOT | LOOKUP_RCU case. Fixed and
folded.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/