So, my client blurted stuff like this:
cp: preserving permissions for
`/tmp/afra/leda/incl/LEDA/pixmaps/button32/index.xpm': Operation not
supported
cp: preserving permissions for
`/tmp/afra/leda/incl/LEDA/pixmaps/button32/ruler.xpm': Operation not
supported
cp: preserving permissions for
`/tmp/afra/leda/incl/LEDA/pixmaps/button32/watch.xpm': Operation not
supported
cp: preserving permissions for
`/tmp/afra/leda/incl/LEDA/pixmaps/button32/maze.xpm': Operation not
supported
cp: preserving permissions for
`/tmp/afra/leda/incl/LEDA/pixmaps/button32/make_file.xpm': Operation
not supported
cp: preserving permissions for
`/tmp/afra/leda/incl/LEDA/pixmaps/button32/tex_file.xpm': Operation
not supported
cp: preserving permissions for
`/tmp/afra/leda/incl/LEDA/pixmaps/button32/home.xpm': Operation not
supported
cp: preserving permissions for
`/tmp/afra/leda/incl/LEDA/pixmaps/button32/c_file0.xpm': Operation not
supported

but the script returned nothing on the server

On 8/30/06, Sam Falkner <Sam.Falkner at sun.com> wrote:
> On Aug 30, 2006, at 4:36 PM, Joe Little wrote:
>
> > On 8/30/06, Sam Falkner <Sam.Falkner at sun.com> wrote:
> >> On Aug 20, 2006, at 6:56 PM, Joe Little wrote:
> >>
> >> > We've noticed that on at least RHEL4 systems mounting from a
> >> Solaris
> >> > 10 U2 and Solaris 11 server using NFS v3, an ls in a given
> >> directory
> >> > shows many files with a '+' at the end of their permissions. This
> >> > isn't documented anywhere for Linux nor Solaris, but we only see t
> >> > his from our ZFS-backed Solaris systems.
> >> >
> >> > -rw-r--r--+ 1 jlittle games     918 May 17  2004 group
> >>
> >> This means that the file has an ACL on it.  Or at least that's what
> >> "ls" is trying to say.
> >>
> >> > That's an example..
> >> >
> >> > Second, when we use "cp -p" to copy any file that has the + symbol,
> >> > we get:
> >> >
> >> > #cp -p filename /tmp
> >> > cp: preserving permissions for `/tmp/filename': Operation not
> >> > supported
> >> >
> >> > Any people can clue me in here? Is there a mode that one needs to
> >> > enable to use V3? Otherwise, using V2 solves things for us, but
> >> then
> >> > we lose visibility of snapshot trees in ZFS.
> >>
> >> ACLs aren't built in to the v3 protocol.  Instead, we have a side
> >> protocol, which Linux also implements.
> >>
> >> What should be happening is that your client asks our v3 server for
> >> an ACL, our server asks ZFS for a POSIX-draft ACL, which it doesn't
> >> support, so our server fakes up an ACL based upon the mode, and
> >> returns it to you.
> >>
> >> But obviously that's not what's happening.  Could you send us a snoop
> >> trace?
> >>
> >> If you're ambitious, could you run this DTrace script on the server,
> >> and send us the output?  Save the script, make it executable, and run
> >> it; then, on the client, try the "cp -p".  Then kill the script, and
> >> send us what (if any) output it generated.  Thanks!
> >>
> >> - Sam
> >>
> >>
> >
> > I didn't see this reply until today. We figured out that we could just
> > mount with "noacl" on the linux end. I'll look into the dtrace and
> > such hopefully soon, but we've already gone production on the affected
> > systems and so I'll put together a different client to test this.
>
> I forget that attachments get deleted by the mailing list software.
> So, here it is inline.  (Joe, I think you should already have it;
> this is just for anyone else curious.)
>
> #! /usr/sbin/dtrace -Fs
>
> acl3_getacl:entry
> {
>      self->spec = speculation();
>      self->resp = args[1];
>      /* tail-call elimination, I curse you! */
>      self->caller = caller;
> }
>
> :::entry
> /self->spec/
> {
>      speculate(self->spec);
> }
>
> :::return
> /self->spec/
> {
>      speculate(self->spec);
>      trace(arg1);
> }
>
> :::return
> /caller == self->caller && self->resp && self->resp->status/
> {
>      commit(self->spec);
> }
>
> :::return
> /caller == self->caller && self->resp && self->resp->status == 0/
> {
>      discard(self->spec);
> }
>
> :::return
> /self->caller && caller == self->caller/
> {
>      self->spec = 0;
>      self->resp = 0;
>      self->caller = 0;
> }
>
> - Sam
>

Reply via email to