Subject: Re: [SPAM] Re: namei caching of newly created files?
To: Havard Eidnes <he@uninett.no>
From: Stephan Uphoff <ups@tree.com>
List: tech-perform
Date: 01/19/2005 19:25:48
cache_enter() should not be used by file system independent code.
ufs_makeinode() looks like (no warranty - you need to check) the right
place to add the call.

Stephan

On Wed, 2005-01-19 at 18:28, Havard Eidnes wrote:
> Hm,
> 
> it seems that <sys/namei.h> already has cache_enter().  I wonder
> if this patch looks sane and safe:
> 
> Index: vfs_vnops.c
> ===================================================================
> RCS file: /cvsroot/src/sys/kern/vfs_vnops.c,v
> retrieving revision 1.85
> diff -u -u -1 -0 -r1.85 vfs_vnops.c
> --- vfs_vnops.c 2 Jan 2005 16:08:29 -0000       1.85
> +++ vfs_vnops.c 19 Jan 2005 23:26:20 -0000
> @@ -135,20 +135,21 @@
>                                 goto restart;
>                         }
>                         VOP_LEASE(ndp->ni_dvp, p, cred, LEASE_WRITE);
>                         error = VOP_CREATE(ndp->ni_dvp, &ndp->ni_vp,
>                                            &ndp->ni_cnd, &va);
>                         vn_finished_write(mp, 0);
>                         if (error)
>                                 return (error);
>                         fmode &= ~O_TRUNC;
>                         vp = ndp->ni_vp;
> +                       cache_enter(ndp->ni_dvp, vp, &ndp->ni_cnd);
>                 } else {
>                         VOP_ABORTOP(ndp->ni_dvp, &ndp->ni_cnd);
>                         if (ndp->ni_dvp == ndp->ni_vp)
>                                 vrele(ndp->ni_dvp);
>                         else
>                                 vput(ndp->ni_dvp);
>                         ndp->ni_dvp = NULL;
>                         vp = ndp->ni_vp;
>                         if (fmode & O_EXCL) {
>                                 error = EEXIST;
> 
> Regards,
> 
> - Håvard
> 
>