Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 Feb 2000 02:35:07 -0800 (PST)
From:      peter.edwards@ireland.com
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   bin/16981: Minor nit with (un)compress and "Operation not supported"
Message-ID:  <200002251035.CAA18173@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         16981
>Category:       bin
>Synopsis:       Minor nit with (un)compress and "Operation not supported"
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Feb 25 02:40:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Peter Edwards
>Release:        -current
>Organization:
>Environment:
FreeBSD rocklobster 4.0-CURRENT FreeBSD 4.0-CURRENT #3: Fri Jan 21 09:42:06 GMT 2000     petere@rocklobster:/usr/src/sys/compile/PME2  i386
>Description:
compress uses setfile() to make flags, ownership and mode of the output
the same as those of the original. However, if the filesystem holding the
output file doesn't support these operations, compress prints a warning.
This bites a bit with NFS directories, which always fail the chflags()
operation. If the file system doesn't support the operation, then the
flags data wasn't valid on the original file anyway, so the warning is
spurious.

>How-To-Repeat:
$ cd /net/remote/directory
$ compress somefile
compress: chflags: somefile.Z: Operation not supported
$


>Fix:
chmod() is also documented as returning EOPNOTSUPP, so I guess the same
goes for it as well as chflags(). Patch follows...

*** compress.c.old      Fri Feb 25 10:17:53 2000
--- compress.c  Fri Feb 25 10:24:20 2000
***************
*** 372,381 ****
                        cwarn("chown: %s", name);
                fs->st_mode &= ~(S_ISUID|S_ISGID);
        }
!       if (chmod(name, fs->st_mode))
                cwarn("chown: %s", name);
  
!       if (chflags(name, fs->st_flags))
                cwarn("chflags: %s", name);
  }
  
--- 372,381 ----
                        cwarn("chown: %s", name);
                fs->st_mode &= ~(S_ISUID|S_ISGID);
        }
!       if (chmod(name, fs->st_mode) && errno != EOPNOTSUPP)
                cwarn("chown: %s", name);
  
!       if (chflags(name, fs->st_flags) && errno != EOPNOTSUPP)
                cwarn("chflags: %s", name);


>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200002251035.CAA18173>