Date: Sun, 4 Jan 2004 21:41:10 -0700 From: BSDC <bsdc@xtremedev.com> To: Tim Robbins <tjr@freebsd.org> Cc: current@freebsd.org Subject: Re: unionfs on ufs2 gives "operation not supported" Message-ID: <20040105044110.GA53777@Amber.XtremeDev.com> In-Reply-To: <3FEC0C6F.7010409@freebsd.org> References: <20031226092650.GA60329@Amber.XtremeDev.com> <3FEC0C6F.7010409@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Dec 26, 2003 at 09:24:47PM +1100, Tim Robbins wrote: > BSDC wrote: > > >Getting "operation not supported" messages on a long ls listing with > >unionfs mounts. Trying to setup a jail using unionfs, has anyone any > >ideas why I'm seeing this with ls? > > > ># mount > >/dev/da0s1a on / (ufs, local, noatime, soft-updates, acls) > >devfs on /dev (devfs, local, multilabel) > >/dev/vinum/usr on /usr (ufs, NFS exported, local, noatime, soft-updates, > >acls) > >/dev/vinum/var on /var (ufs, local, noatime, soft-updates, acls) > ><below>:/usr/jail/template on /usr/jail/172.16.1.1 (unionfs, noatime, > >noclusterw, acls) > >^^^^^^^ > > > ># ls -l /usr/jail/172.16.1.1/ > >ls: /usr/jail/172.16.1.1/.cshrc: Operation not supported > >-rw-r--r-- 2 root wheel 797 Dec 24 03:04 .cshrc > >ls: /usr/jail/172.16.1.1/.profile: Operation not supported > >-rw-r--r-- 2 root wheel 251 Dec 24 03:04 .profile > > > > > The problem seems to be that ls is performing a pathconf(2) > _PC_ACL_EXTENDED request on the file to determine whether ACLs are > supported on the file, and this request is getting passed down from > unionfs to one of the UFS layers, which is indicating that ACLs are > supported, but unionfs does not actually support ACLs. > > I've attached an (untested) patch that should make unionfs reject > _PC_ACL_EXTENDED. Access to files should still be controlled by the > ACLs, but you won't be able to query or modify them through unionfs. Let > me know if this patch works & I'll see if I can get proper ACL support > implemented. > > > Tim Sorry I haven't gotten back sooner, just got in from my vacation. I just tried the patch, and it eliminated the "Operation not supported" messages. Forgive my uninformed newbie question, but why the error message when unionfs is just passing _PC_ACL_EXTENDED requests down to the fs below? If the fs below supports it, shouldn't it handle it just fine? Anyways, just thought I'd let you know the patch works. Thanks! > ==== //depot/user/tjr/freebsd-tjr/src/sys/fs/unionfs/union_vnops.c#5 - /p4/src/sys/fs/unionfs/union_vnops.c ==== > @@ -51,6 +51,7 @@ > #include <sys/buf.h> > #include <sys/lock.h> > #include <sys/sysctl.h> > +#include <sys/unistd.h> > #include <fs/unionfs/union.h> > > #include <vm/vm.h> > @@ -1780,6 +1781,9 @@ > struct union_node *un = VTOUNION(ap->a_vp); > struct vnode *vp; > > + if (ap->a_name == _PC_ACL_EXTENDED) > + return (EINVAL); > + > vp = union_lock_other(un, td); > KASSERT(vp != NULL, ("union_pathconf: backing vnode missing!")); >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040105044110.GA53777>