diff options
author | peter <peter@FreeBSD.org> | 2000-07-29 22:22:11 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2000-07-29 22:22:11 +0000 |
commit | dcb2b5952231f2d205240204fcf3462732085f48 (patch) | |
tree | 6f18510a9a6bc6ec5b28fc6e1864edf34decf60c /usr.sbin/chown | |
parent | d2e30b873135a6861b615104186773031877cda7 (diff) | |
download | FreeBSD-src-dcb2b5952231f2d205240204fcf3462732085f48.zip FreeBSD-src-dcb2b5952231f2d205240204fcf3462732085f48.tar.gz |
Initialize vflag like the rest (not necessary, but this keeps it together)
Optimize out chown(2) syscalls if there is no change in uid or gid.
Diffstat (limited to 'usr.sbin/chown')
-rw-r--r-- | usr.sbin/chown/chown.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/usr.sbin/chown/chown.c b/usr.sbin/chown/chown.c index 26d3073..dacf623 100644 --- a/usr.sbin/chown/chown.c +++ b/usr.sbin/chown/chown.c @@ -85,7 +85,7 @@ main(argc, argv) myname = (cp = rindex(*argv, '/')) ? cp + 1 : *argv; ischown = myname[2] == 'o'; - Hflag = Lflag = Pflag = hflag = 0; + Hflag = Lflag = Pflag = hflag = vflag = 0; while ((ch = getopt(argc, argv, "HLPRfhv")) != -1) switch (ch) { case 'H': @@ -182,6 +182,9 @@ main(argc, argv) default: break; } + if ((uid == -1 || uid == p->fts_statp->st_uid) && + (gid == -1 || gid == p->fts_statp->st_gid)) + continue; if (hflag) { if (lchown(p->fts_accpath, uid, gid) && !fflag) { chownerr(p->fts_path); |