Date: Sat, 14 Jun 2003 17:07:17 -0700 (PDT) From: Nate Lawson <nate@root.org> To: David Schultz <das@FreeBSD.org> Cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/fs/unionfs union_vnops.c Message-ID: <20030614170529.C50064@root.org> In-Reply-To: <20030614235633.9A83137B490@hub.freebsd.org> References: <20030614235633.9A83137B490@hub.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 14 Jun 2003, David Schultz wrote: > If someone tries to mount a union filesystem with another unionfs as > the upper layer, fail gracefully instead of panicing. > > Revision Changes Path > 1.99 +14 -4 src/sys/fs/unionfs/union_vnops.c > > --- src/sys/fs/unionfs/union_vnops.c:1.98 Sat Jun 14 16:27:29 2003 > +++ src/sys/fs/unionfs/union_vnops.c Sat Jun 14 16:56:27 2003 > @@ -670,10 +670,20 @@ > struct vnode *uppervp; > int error = EOPNOTSUPP; > > - if ((uppervp = union_lock_upper(un, cnp->cn_thread)) != NULLVP) { > - error = VOP_WHITEOUT(un->un_uppervp, cnp, ap->a_flags); > - union_unlock_upper(uppervp, cnp->cn_thread); > - } > + switch (ap->a_flags) { > + case LOOKUP: > + error = EOPNOTSUPP; > + break; > + case CREATE: > + case DELETE: > + if ((uppervp=union_lock_upper(un,cnp->cn_thread)) != NULLVP) { > + error = VOP_WHITEOUT(un->un_uppervp, cnp, ap->a_flags); > + union_unlock_upper(uppervp, cnp->cn_thread); > + } > + break; > + default: > + panic("union_whiteout: unknown op"); > + } > return(error); > } Is that the default value you want for error? Perhaps you don't need to assign one? -Nate
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030614170529.C50064>