PERFORCE change 50275 for review
Marcel Moolenaar
marcel at FreeBSD.org
Sat Apr 3 12:30:18 PST 2004
http://perforce.freebsd.org/chv.cgi?CH=50275
Change 50275 by marcel at marcel_nfs on 2004/04/03 12:30:10
IFC @50274
Affected files ...
.. //depot/projects/gdb/bin/ls/print.c#4 integrate
.. //depot/projects/gdb/etc/inetd.conf#5 integrate
.. //depot/projects/gdb/etc/newsyslog.conf#3 integrate
.. //depot/projects/gdb/sbin/growfs/Makefile#3 integrate
.. //depot/projects/gdb/sbin/growfs/debug.c#2 integrate
.. //depot/projects/gdb/sbin/growfs/growfs.c#3 integrate
.. //depot/projects/gdb/share/man/man5/rc.conf.5#8 integrate
.. //depot/projects/gdb/sys/conf/files#11 integrate
.. //depot/projects/gdb/sys/i386/i386/elan-mmcr.c#5 integrate
.. //depot/projects/gdb/sys/kern/imgact_elf.c#6 integrate
.. //depot/projects/gdb/sys/nfsclient/nfs_vnops.c#3 integrate
.. //depot/projects/gdb/usr.bin/find/extern.h#2 integrate
.. //depot/projects/gdb/usr.bin/find/function.c#2 integrate
.. //depot/projects/gdb/usr.bin/find/option.c#2 integrate
Differences ...
==== //depot/projects/gdb/bin/ls/print.c#4 (text+ko) ====
@@ -40,7 +40,7 @@
#endif /* not lint */
#endif
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/bin/ls/print.c,v 1.68 2004/03/01 19:25:27 cperciva Exp $");
+__FBSDID("$FreeBSD: src/bin/ls/print.c,v 1.69 2004/04/03 16:55:56 bmilekic Exp $");
#include <sys/param.h>
#include <sys/stat.h>
@@ -694,11 +694,17 @@
*haveacls = 1;
if ((facl = acl_get_file(name, ACL_TYPE_ACCESS)) != NULL) {
if (acl_get_entry(facl, ACL_FIRST_ENTRY, &ae) == 1) {
- entries = 0;
- do
- entries++;
- while (acl_get_entry(facl, ACL_NEXT_ENTRY, &ae) == 1);
- if (entries != 3)
+ entries = 1;
+ while (acl_get_entry(facl, ACL_NEXT_ENTRY, &ae) == 1)
+ if (++entries > 3)
+ break;
+ /*
+ * POSIX.1e requires that ACLs of type ACL_TYPE_ACCESS
+ * must have at least three entries (owner, group,
+ * and other). So anything with more than 3 ACLs looks
+ * interesting to us.
+ */
+ if (entries > 3)
buf[10] = '+';
}
acl_free(facl);
==== //depot/projects/gdb/etc/inetd.conf#5 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/etc/inetd.conf,v 1.67 2004/03/11 22:15:28 des Exp $
+# $FreeBSD: src/etc/inetd.conf,v 1.68 2004/04/03 17:52:29 mlaier Exp $
#
# Internet server configuration database
#
@@ -122,4 +122,4 @@
# N.B.: inetd binds to * in the default installation so you should add
# an appropriate block rule to your pf.conf
#
-#ftp-proxy stream tcp nowait root /usr/libexec/ftp-proxy ftp-proxy
+#ftp-proxy stream tcp nowait root /usr/libexec/ftp-proxy ftp-proxy
==== //depot/projects/gdb/etc/newsyslog.conf#3 (text+ko) ====
@@ -1,5 +1,5 @@
# configuration file for newsyslog
-# $FreeBSD: src/etc/newsyslog.conf,v 1.48 2004/04/02 19:25:27 mlaier Exp $
+# $FreeBSD: src/etc/newsyslog.conf,v 1.49 2004/04/03 17:52:29 mlaier Exp $
#
# Entries which do not specify the '/pid_file' field will cause the
# syslogd process to be signalled when that log file is rotated. This
@@ -29,6 +29,7 @@
/var/log/maillog 640 7 * @T00 J
/var/log/messages 644 5 100 * J
/var/log/monthly.log 640 12 * $M1D0 JN
+/var/log/pflog 600 3 100 * JB /var/run/pflogd.pid
/var/log/ppp.log root:network 640 3 100 * J
/var/log/security 600 10 100 * J
/var/log/sendmail.st 640 10 * 168 B
@@ -36,5 +37,3 @@
/var/log/weekly.log 640 5 1 $W6D0 JN
/var/log/wtmp 644 3 * @01T05 B
/var/log/xferlog 600 7 100 * J
-# pflogd sample entry
-#/var/log/pflog 600 3 100 * JB /var/run/pflogd.pid
==== //depot/projects/gdb/sbin/growfs/Makefile#3 (text+ko) ====
@@ -1,7 +1,7 @@
# @(#)Makefile 8.8 (Berkeley) 6/21/2000
#
# $TSHeader: src/sbin/growfs/Makefile,v 1.4 2000/12/05 19:45:24 tomsoft Exp $
-# $FreeBSD: src/sbin/growfs/Makefile,v 1.6 2004/04/01 20:31:49 johan Exp $
+# $FreeBSD: src/sbin/growfs/Makefile,v 1.7 2004/04/03 17:40:19 le Exp $
#
#GFSDBG=YES
@@ -10,7 +10,7 @@
SRCS= growfs.c
MAN= growfs.8
-WARNS?= 0
+WARNS?= 6
.if defined(GFSDBG)
SRCS+= debug.c
==== //depot/projects/gdb/sbin/growfs/debug.c#2 (text+ko) ====
@@ -41,7 +41,7 @@
#ifndef lint
static const char rcsid[] =
- "$FreeBSD: src/sbin/growfs/debug.c,v 1.8 2003/08/14 18:40:59 rwatson Exp $";
+ "$FreeBSD: src/sbin/growfs/debug.c,v 1.9 2004/04/03 17:40:19 le Exp $";
#endif /* not lint */
/* ********************************************************** INCLUDES ***** */
@@ -49,6 +49,7 @@
#include <limits.h>
#include <stdio.h>
+#include <string.h>
#include <ufs/ufs/dinode.h>
#include <ufs/ffs/fs.h>
@@ -783,10 +784,10 @@
fprintf(dbg_log, "blocks u_int64_t 0x%08x%08x\n",
((unsigned int *)&(ino->di_blocks))[1],
((unsigned int *)&(ino->di_blocks))[0]);
- fprintf(dbg_log, "atime ufs_time_t %10u\n", ino->di_atime);
- fprintf(dbg_log, "mtime ufs_time_t %10u\n", ino->di_mtime);
- fprintf(dbg_log, "ctime ufs_time_t %10u\n", ino->di_ctime);
- fprintf(dbg_log, "birthtime ufs_time_t %10u\n", ino->di_birthtime);
+ fprintf(dbg_log, "atime ufs_time_t %10jd\n", ino->di_atime);
+ fprintf(dbg_log, "mtime ufs_time_t %10jd\n", ino->di_mtime);
+ fprintf(dbg_log, "ctime ufs_time_t %10jd\n", ino->di_ctime);
+ fprintf(dbg_log, "birthtime ufs_time_t %10jd\n", ino->di_birthtime);
fprintf(dbg_log, "mtimensec int32_t 0x%08x\n", ino->di_mtimensec);
fprintf(dbg_log, "atimensec int32_t 0x%08x\n", ino->di_atimensec);
fprintf(dbg_log, "ctimensec int32_t 0x%08x\n", ino->di_ctimensec);
@@ -800,24 +801,24 @@
remaining_blocks=howmany(ino->di_size, sb->fs_bsize); /* XXX ts - +1? */
for(ictr=0; ictr < MIN(NDADDR, remaining_blocks); ictr++) {
- fprintf(dbg_log, "db ufs2_daddr_t[%x] 0x%16x\n", ictr,
+ fprintf(dbg_log, "db ufs2_daddr_t[%x] 0x%16jx\n", ictr,
ino->di_db[ictr]);
}
remaining_blocks-=NDADDR;
if(remaining_blocks>0) {
- fprintf(dbg_log, "ib ufs2_daddr_t[0] 0x%16x\n",
+ fprintf(dbg_log, "ib ufs2_daddr_t[0] 0x%16jx\n",
ino->di_ib[0]);
}
remaining_blocks-=howmany(sb->fs_bsize, sizeof(ufs2_daddr_t));
if(remaining_blocks>0) {
- fprintf(dbg_log, "ib ufs2_daddr_t[1] 0x%16x\n",
+ fprintf(dbg_log, "ib ufs2_daddr_t[1] 0x%16jx\n",
ino->di_ib[1]);
}
#define SQUARE(a) ((a)*(a))
remaining_blocks-=SQUARE(howmany(sb->fs_bsize, sizeof(ufs2_daddr_t)));
#undef SQUARE
if(remaining_blocks>0) {
- fprintf(dbg_log, "ib ufs2_daddr_t[2] 0x%16x\n",
+ fprintf(dbg_log, "ib ufs2_daddr_t[2] 0x%16jx\n",
ino->di_ib[2]);
}
@@ -835,8 +836,7 @@
void
dbg_dump_iblk(struct fs *sb, const char *comment, char *block, size_t length)
{
- unsigned int *mem;
- int i, j, size;
+ unsigned int *mem, i, j, size;
if(!dbg_log) {
return;
==== //depot/projects/gdb/sbin/growfs/growfs.c#3 (text+ko) ====
@@ -48,7 +48,7 @@
#ifndef lint
static const char rcsid[] =
- "$FreeBSD: src/sbin/growfs/growfs.c,v 1.17 2004/03/26 23:42:32 le Exp $";
+ "$FreeBSD: src/sbin/growfs/growfs.c,v 1.18 2004/04/03 17:40:19 le Exp $";
#endif /* not lint */
/* ********************************************************** INCLUDES ***** */
@@ -65,6 +65,7 @@
#include <fcntl.h>
#include <limits.h>
#include <stdlib.h>
+#include <stdint.h>
#include <string.h>
#include <unistd.h>
#include <ufs/ufs/dinode.h>
@@ -107,10 +108,10 @@
};
#define DIP(dp, field) \
((sblock.fs_magic == FS_UFS1_MAGIC) ? \
- (dp)->dp1.field : (dp)->dp2.field)
+ (uint32_t)(dp)->dp1.field : (dp)->dp2.field)
static ufs2_daddr_t inoblk; /* inode block address */
static char inobuf[MAXBSIZE]; /* inode block */
-static int maxino; /* last valid inode */
+ino_t maxino; /* last valid inode */
static int unlabeled; /* unlabeled partition, e.g. vinum volume etc. */
/*
@@ -366,8 +367,8 @@
{
DBG_FUNC("initcg")
static caddr_t iobuf;
- long i, d, dlower, dupper, blkno, start;
- ufs2_daddr_t cbase, dmax;
+ long d, dlower, dupper, blkno, start;
+ ufs2_daddr_t i, cbase, dmax;
struct ufs1_dinode *dp1;
struct ufs2_dinode *dp2;
struct csum *cs;
@@ -628,9 +629,9 @@
fragnum = fragnum(&sblock, src);
*block = dst + fragnum;
f->found++;
- DBG_PRINT3("scg (%d->%d)[%d] reference updated\n",
- f->old,
- f->new,
+ DBG_PRINT3("scg (%jd->%jd)[%d] reference updated\n",
+ (intmax_t)f->old,
+ (intmax_t)f->new,
fragnum);
/*
@@ -751,10 +752,12 @@
DBG_PRINT2("jcg dbg: %d %u",
cylno,
sblock.fs_ncg);
+#ifdef FS_DEBUG
if (sblock.fs_magic == FS_UFS1_MAGIC)
DBG_PRINT2("%d %u",
acg.cg_old_ncyl,
sblock.fs_old_cpg);
+#endif
DBG_PRINT0("\n");
acg.cg_ndblk = dmax - cbase;
sblock.fs_dsize += acg.cg_ndblk-aocg.cg_ndblk;
@@ -1030,8 +1033,8 @@
*/
d--;
- DBG_PRINT1("d=%d\n",
- d);
+ DBG_PRINT1("d=%jd\n",
+ (intmax_t)d);
if((d+1)%sblock.fs_frag) {
/*
* The end of the cylinder summary is not a complete
@@ -1040,8 +1043,8 @@
DBG_TRC;
frag_adjust(d%sblock.fs_fpg, -1);
for(; (d+1)%sblock.fs_frag; d--) {
- DBG_PRINT1("d=%d\n",
- d);
+ DBG_PRINT1("d=%jd\n",
+ (intmax_t)d);
setbit(cg_blksfree(&acg), d%sblock.fs_fpg);
acg.cg_cs.cs_nffree++;
sblock.fs_cstotal.cs_nffree++;
@@ -1055,7 +1058,7 @@
if(isblock(&sblock, cg_blksfree(&acg),
(d%sblock.fs_fpg)/sblock.fs_frag)) {
- DBG_PRINT1("d=%d\n", d);
+ DBG_PRINT1("d=%jd\n", (intmax_t)d);
acg.cg_cs.cs_nffree-=sblock.fs_frag;
acg.cg_cs.cs_nbfree++;
sblock.fs_cstotal.cs_nffree-=sblock.fs_frag;
@@ -1080,11 +1083,11 @@
d--;
}
- DBG_PRINT1("d=%d\n", d);
+ DBG_PRINT1("d=%jd\n", (intmax_t)d);
for(d=rounddown(d, sblock.fs_frag); d >= osblock.fs_csaddr;
d-=sblock.fs_frag) {
DBG_TRC;
- DBG_PRINT1("d=%d\n", d);
+ DBG_PRINT1("d=%jd\n", (intmax_t)d);
setblock(&sblock, cg_blksfree(&acg),
(d%sblock.fs_fpg)/sblock.fs_frag);
acg.cg_cs.cs_nbfree++;
@@ -1256,8 +1259,8 @@
ind=0;
frag_adjust(odupper, -1);
for(d=odupper; ((d<dupper)&&(d%sblock.fs_frag)); d++) {
- DBG_PRINT1("scg first frag check loop d=%d\n",
- d);
+ DBG_PRINT1("scg first frag check loop d=%jd\n",
+ (intmax_t)d);
if(isclr(cg_blksfree(&acg), d)) {
if (!ind) {
bp[ind].old=d/sblock.fs_frag;
@@ -1286,8 +1289,8 @@
* Handle all needed complete blocks here.
*/
for(; d+sblock.fs_frag<=dupper; d+=sblock.fs_frag) {
- DBG_PRINT1("scg block check loop d=%d\n",
- d);
+ DBG_PRINT1("scg block check loop d=%jd\n",
+ (intmax_t)d);
if(!isblock(&sblock, cg_blksfree(&acg), d/sblock.fs_frag)) {
for(f=d; f<d+sblock.fs_frag; f++) {
if(isset(cg_blksfree(&aocg), f)) {
@@ -1355,8 +1358,8 @@
}
for(; d<dupper; d++) {
- DBG_PRINT1("scg second frag check loop d=%d\n",
- d);
+ DBG_PRINT1("scg second frag check loop d=%jd\n",
+ (intmax_t)d);
if(isclr(cg_blksfree(&acg), d)) {
bp[ind].old=d/sblock.fs_frag;
bp[ind].flags|=GFS_FL_LAST;
@@ -1468,9 +1471,9 @@
"copied full block",
(unsigned char *)&ablk);
- DBG_PRINT2("scg (%d->%d) block relocated\n",
- bp[i].old,
- bp[i].new);
+ DBG_PRINT2("scg (%jd->%jd) block relocated\n",
+ (intmax_t)bp[i].old,
+ (intmax_t)bp[i].new);
}
/*
@@ -1493,8 +1496,8 @@
*/
for(i=0; i<ind; i++) {
if(!bp[i].found || (bp[i].found>sblock.fs_frag)) {
- warnx("error: %d refs found for block %d.",
- bp[i].found, bp[i].old);
+ warnx("error: %jd refs found for block %jd.",
+ (intmax_t)bp[i].found, (intmax_t)bp[i].old);
}
}
@@ -1539,11 +1542,11 @@
DBG_ENTER;
if (lseek(fsi, (off_t)bno * DEV_BSIZE, 0) < 0) {
- err(33, "rdfs: seek error: %ld", (long)bno);
+ err(33, "rdfs: seek error: %jd", (intmax_t)bno);
}
n = read(fsi, bf, size);
if (n != (ssize_t)size) {
- err(34, "rdfs: read error: %ld", (long)bno);
+ err(34, "rdfs: read error: %jd", (intmax_t)bno);
}
DBG_LEAVE;
@@ -2046,6 +2049,7 @@
*/
cp=device+strlen(device)-1;
lp = get_disklabel(fsi);
+ pp = NULL;
if (lp != NULL) {
if (isdigit(*cp)) {
pp = &lp->d_partitions[2];
@@ -2076,7 +2080,7 @@
(osblock.fs_magic == FS_UFS2_MAGIC &&
osblock.fs_sblockloc == sblock_try[i])) &&
osblock.fs_bsize <= MAXBSIZE &&
- osblock.fs_bsize >= sizeof(struct fs))
+ osblock.fs_bsize >= (int32_t) sizeof(struct fs))
break;
}
if (sblock_try[i] == -1) {
@@ -2106,8 +2110,8 @@
* Are we really growing ?
*/
if(osblock.fs_size >= sblock.fs_size) {
- errx(1, "we are not growing (%d->%d)", osblock.fs_size,
- sblock.fs_size);
+ errx(1, "we are not growing (%jd->%jd)",
+ (intmax_t)osblock.fs_size, (intmax_t)sblock.fs_size);
}
@@ -2140,7 +2144,7 @@
}
}
- printf("new file systemsize is: %d frags\n", sblock.fs_size);
+ printf("new file systemsize is: %jd frags\n", (intmax_t)sblock.fs_size);
/*
* Try to access our new last block in the file system. Even if we
@@ -2182,8 +2186,8 @@
sblock.fs_ncg--;
if (sblock.fs_magic == FS_UFS1_MAGIC)
sblock.fs_old_ncyl = sblock.fs_ncg * sblock.fs_old_cpg;
- printf("Warning: %d sector(s) cannot be allocated.\n",
- fsbtodb(&sblock, sblock.fs_size % sblock.fs_fpg));
+ printf("Warning: %jd sector(s) cannot be allocated.\n",
+ (intmax_t)fsbtodb(&sblock, sblock.fs_size % sblock.fs_fpg));
sblock.fs_size = sblock.fs_ncg * sblock.fs_fpg;
}
@@ -2387,7 +2391,7 @@
DBG_LEAVE;
return; /* only check DIR, FILE, LINK */
}
- if (mode == IFLNK && DIP(ino, di_size) < sblock.fs_maxsymlinklen) {
+ if (mode == IFLNK && DIP(ino, di_size) < (u_int64_t) sblock.fs_maxsymlinklen) {
DBG_LEAVE;
return; /* skip short symlinks */
}
==== //depot/projects/gdb/share/man/man5/rc.conf.5#8 (text+ko) ====
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man5/rc.conf.5,v 1.212 2004/04/02 19:25:26 mlaier Exp $
+.\" $FreeBSD: src/share/man/man5/rc.conf.5,v 1.213 2004/04/03 17:52:29 mlaier Exp $
.\"
.Dd March 30, 2004
.Dt RC.CONF 5
@@ -743,7 +743,7 @@
.Pa /var/log/pflog ) .
Check
.Pa /etc/newsyslog.conf
-to enable logfile rotation for this.
+to adjust logfile rotation for this.
.It Va pflog_program
.Pq Vt str
Path to
==== //depot/projects/gdb/sys/conf/files#11 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.880 2004/04/01 17:55:50 des Exp $
+# $FreeBSD: src/sys/conf/files,v 1.881 2004/04/03 18:42:05 phk Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -496,7 +496,7 @@
dev/joy/joy.c optional joy
dev/joy/joy_isa.c optional joy isa
dev/joy/joy_pccard.c optional joy pccard
-dev/led/led.c optional cpu_soekris
+dev/led/led.c standard
dev/lge/if_lge.c optional lge
dev/lnc/if_lnc.c optional lnc
dev/lnc/if_lnc_pci.c optional lnc pci
==== //depot/projects/gdb/sys/i386/i386/elan-mmcr.c#5 (text+ko) ====
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/i386/elan-mmcr.c,v 1.26 2004/03/15 21:47:34 phk Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/i386/elan-mmcr.c,v 1.27 2004/04/03 18:42:52 phk Exp $");
#include "opt_cpu.h"
#include <sys/param.h>
@@ -77,7 +77,6 @@
static u_int echo_a, echo_d;
#endif /* CPU_ELAN_PPS */
-#ifdef CPU_SOEKRIS
static u_int led_cookie[32];
static dev_t led_dev[32];
@@ -93,7 +92,6 @@
v ^= 0xc;
mmcrptr[v / 2] = u;
}
-#endif
static int
sysctl_machdep_elan_gpio_config(SYSCTL_HANDLER_ARGS)
@@ -117,7 +115,9 @@
/* Disallow any disabled pins and count pps and echo */
np = ne = 0;
for (i = 0; i < 32; i++) {
- if (gpio_config[i] == '-' && (buf[i] != '-' && buf[i] != '.'))
+ if (gpio_config[i] == '-' && buf[i] == '.')
+ buf[i] = gpio_config[i];
+ if (gpio_config[i] == '-' && buf[i] != '-')
return (EPERM);
if (buf[i] == 'P') {
np++;
@@ -149,12 +149,15 @@
else
v = 0;
#ifdef CPU_SOEKRIS
+ if (i == 9)
+ ;
+ else
+#endif
if (buf[i] != 'l' && buf[i] != 'L' && led_dev[i] != NULL) {
led_destroy(led_dev[i]);
led_dev[i] = NULL;
mmcrptr[(0xc2a + v) / 2] &= ~u;
}
-#endif
switch (buf[i]) {
#ifdef CPU_ELAN_PPS
case 'P':
@@ -177,7 +180,6 @@
gpio_config[i] = buf[i];
break;
#endif /* CPU_ELAN_PPS */
-#ifdef CPU_SOEKRIS
case 'l':
case 'L':
if (buf[i] == 'L')
@@ -192,7 +194,6 @@
mmcrptr[(0xc2a + v) / 2] |= u;
gpio_config[i] = buf[i];
break;
-#endif
case '.':
gpio_config[i] = buf[i];
break;
==== //depot/projects/gdb/sys/kern/imgact_elf.c#6 (text+ko) ====
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/imgact_elf.c,v 1.145 2004/03/18 16:33:05 nectar Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/imgact_elf.c,v 1.146 2004/04/03 20:25:41 marcel Exp $");
#include <sys/param.h>
#include <sys/exec.h>
==== //depot/projects/gdb/sys/nfsclient/nfs_vnops.c#3 (text+ko) ====
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/nfsclient/nfs_vnops.c,v 1.216 2004/03/11 18:02:35 phk Exp $");
+__FBSDID("$FreeBSD: src/sys/nfsclient/nfs_vnops.c,v 1.217 2004/04/03 17:23:46 peadar Exp $");
/*
* vnode op calls for Sun NFS version 2 and 3
@@ -691,6 +691,7 @@
struct thread *td)
{
struct nfsv2_sattr *sp;
+ struct nfsnode *np = VTONFS(vp);
caddr_t bpos, dpos;
u_int32_t *tl;
int error = 0, wccflag = NFSV3_WCCRATTR;
@@ -726,6 +727,7 @@
}
nfsm_request(vp, NFSPROC_SETATTR, td, cred);
if (v3) {
+ np->n_modestamp = 0;
nfsm_wcc_data(vp, wccflag);
} else
nfsm_loadattr(vp, NULL);
==== //depot/projects/gdb/usr.bin/find/extern.h#2 (text+ko) ====
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)extern.h 8.3 (Berkeley) 4/16/94
- * $FreeBSD: src/usr.bin/find/extern.h,v 1.19 2003/06/14 13:00:21 markm Exp $
+ * $FreeBSD: src/usr.bin/find/extern.h,v 1.20 2004/04/03 17:10:04 bmilekic Exp $
*/
#include <sys/cdefs.h>
@@ -52,6 +52,7 @@
creat_f c_Xmin;
creat_f c_Xtime;
+creat_f c_acl;
creat_f c_and;
creat_f c_delete;
creat_f c_depth;
@@ -82,6 +83,7 @@
exec_f f_Xmin;
exec_f f_Xtime;
+exec_f f_acl;
exec_f f_always_true;
exec_f f_closeparen;
exec_f f_delete;
==== //depot/projects/gdb/usr.bin/find/function.c#2 (text+ko) ====
@@ -41,11 +41,13 @@
#endif /* not lint */
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/usr.bin/find/function.c,v 1.48 2003/06/14 13:00:21 markm Exp $");
+__FBSDID("$FreeBSD: src/usr.bin/find/function.c,v 1.49 2004/04/03 17:10:04 bmilekic Exp $");
#include <sys/param.h>
#include <sys/ucred.h>
#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/acl.h>
#include <sys/wait.h>
#include <sys/mount.h>
#include <sys/timeb.h>
@@ -352,6 +354,55 @@
}
/*
+ * -acl function --
+ *
+ * Show files with EXTENDED ACL attributes.
+ */
+int
+f_acl(PLAN *plan__unused, FTSENT *entry)
+{
+ int match, entries;
+ acl_entry_t ae;
+ acl_t facl;
+
+ if (S_ISLNK(entry->fts_statp->st_mode))
+ return 0;
+ if ((match = pathconf(entry->fts_accpath, _PC_ACL_EXTENDED)) <= 0) {
+ if (match < 0 && errno != EINVAL)
+ warn("%s", entry->fts_accpath);
+ else
+ return 0;
+ }
+ match = 0;
+ if ((facl = acl_get_file(entry->fts_accpath,ACL_TYPE_ACCESS)) != NULL) {
+ if (acl_get_entry(facl, ACL_FIRST_ENTRY, &ae) == 1) {
+ /*
+ * POSIX.1e requires that ACLs of type ACL_TYPE_ACCESS
+ * must have at least three entries (owner, group,
+ * other).
+ */
+ entries = 1;
+ while (acl_get_entry(facl, ACL_NEXT_ENTRY, &ae) == 1) {
+ if (++entries > 3) {
+ match = 1;
+ break;
+ }
+ }
+ }
+ acl_free(facl);
+ } else
+ warn("%s", entry->fts_accpath);
+ return match;
+}
+
+PLAN *
+c_acl(OPTION *option, char ***argvp__unused)
+{
+ ftsoptions &= ~FTS_NOSTAT;
+ return (palloc(option));
+}
+
+/*
* -delete functions --
*
* True always. Makes its best shot and continues on regardless.
==== //depot/projects/gdb/usr.bin/find/option.c#2 (text+ko) ====
@@ -41,7 +41,7 @@
#endif /* not lint */
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/usr.bin/find/option.c,v 1.20 2003/06/14 13:00:21 markm Exp $");
+__FBSDID("$FreeBSD: src/usr.bin/find/option.c,v 1.21 2004/04/03 17:10:04 bmilekic Exp $");
#include <sys/types.h>
#include <sys/stat.h>
@@ -63,6 +63,7 @@
{ "(", c_simple, f_openparen, 0 },
{ ")", c_simple, f_closeparen, 0 },
{ "-a", c_and, NULL, 0 },
+ { "-acl", c_acl, f_acl, 0 },
{ "-amin", c_Xmin, f_Xmin, F_TIME_A },
{ "-and", c_and, NULL, 0 },
{ "-anewer", c_newer, f_newer, F_TIME_A },
More information about the p4-projects
mailing list