[Unionfs] Re: Oops on kernel
Erez Zadok
ezk at cs.sunysb.edu
Tue Mar 25 17:26:53 EDT 2008
In message <200802220201.m1M21moE011936 at agora.fsl.cs.sunysb.edu>, Erez Zadok writes:
> Fernando,
>
> Thanks for the report. This isn't an oops but a warning that I added to
> alert me about potential races. Most of these races are not too serious b/c
> they typically result in unionfs doing extra work to revalidate a dentry.
> Still, I'd like you to report all such warnings you get!
>
> Anyway, I've looked at the code and I believe it comes from the setattr code
> which updates the times of the parent inode, and I think that it's
> unnecessary. Can you try the small patch below and let me know how it works
> for you?
>
> Thanks,
> Erez.
>
>
> diff --git a/fs/unionfs/inode.c b/fs/unionfs/inode.c
> index 640969d..0dc07ec 100644
> --- a/fs/unionfs/inode.c
> +++ b/fs/unionfs/inode.c
> @@ -1064,8 +1064,7 @@ static int unionfs_setattr(struct dentry *dentry, struct iattr *ia)
> if (ia->ia_valid & ATTR_ATIME_SET)
> inode->i_atime = lower_inode->i_atime;
> fsstack_copy_inode_size(inode, lower_inode);
> - /* if setattr succeeded, then parent dir may have changed */
> - unionfs_copy_attr_times(dentry->d_parent->d_inode);
> +
> out:
> if (!err)
> unionfs_check_dentry(dentry);
For the record, this fix is also in unionfs-2.3.
Erez.
More information about the unionfs
mailing list