[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