Module Name:    src
Committed By:   tls
Date:           Sun Jun 23 06:18:28 UTC 2013

Modified Files:
        src/sys/fs/adosfs [tls-maxphys]: advnops.c
        src/sys/fs/cd9660 [tls-maxphys]: cd9660_extern.h cd9660_lookup.c
            cd9660_vfsops.c cd9660_vnops.c
        src/sys/fs/efs [tls-maxphys]: efs_vnops.c
        src/sys/fs/filecorefs [tls-maxphys]: filecore_extern.h filecore_vnops.c
        src/sys/fs/hfs [tls-maxphys]: hfs_vnops.c
        src/sys/fs/msdosfs [tls-maxphys]: msdosfs_vfsops.c msdosfs_vnops.c
        src/sys/fs/nilfs [tls-maxphys]: nilfs_vnops.c
        src/sys/fs/ntfs [tls-maxphys]: ntfs_vnops.c
        src/sys/fs/ptyfs [tls-maxphys]: ptyfs_vnops.c
        src/sys/fs/puffs [tls-maxphys]: puffs_node.c puffs_sys.h
        src/sys/fs/smbfs [tls-maxphys]: smbfs_vnops.c
        src/sys/fs/sysvbfs [tls-maxphys]: sysvbfs_vnops.c
        src/sys/fs/tmpfs [tls-maxphys]: tmpfs_vnops.c
        src/sys/fs/udf [tls-maxphys]: udf_vnops.c
        src/sys/fs/v7fs [tls-maxphys]: v7fs_vnops.c

Log Message:
resync from head


To generate a diff of this commit:
cvs rdiff -u -r1.39.2.1 -r1.39.2.2 src/sys/fs/adosfs/advnops.c
cvs rdiff -u -r1.24 -r1.24.40.1 src/sys/fs/cd9660/cd9660_extern.h
cvs rdiff -u -r1.20.2.2 -r1.20.2.3 src/sys/fs/cd9660/cd9660_lookup.c
cvs rdiff -u -r1.75.2.1 -r1.75.2.2 src/sys/fs/cd9660/cd9660_vfsops.c
cvs rdiff -u -r1.41.2.1 -r1.41.2.2 src/sys/fs/cd9660/cd9660_vnops.c
cvs rdiff -u -r1.26.2.2 -r1.26.2.3 src/sys/fs/efs/efs_vnops.c
cvs rdiff -u -r1.20 -r1.20.14.1 src/sys/fs/filecorefs/filecore_extern.h
cvs rdiff -u -r1.34.2.1 -r1.34.2.2 src/sys/fs/filecorefs/filecore_vnops.c
cvs rdiff -u -r1.26 -r1.26.2.1 src/sys/fs/hfs/hfs_vnops.c
cvs rdiff -u -r1.96.2.1 -r1.96.2.2 src/sys/fs/msdosfs/msdosfs_vfsops.c
cvs rdiff -u -r1.83.2.1 -r1.83.2.2 src/sys/fs/msdosfs/msdosfs_vnops.c
cvs rdiff -u -r1.18.2.1 -r1.18.2.2 src/sys/fs/nilfs/nilfs_vnops.c
cvs rdiff -u -r1.52.2.1 -r1.52.2.2 src/sys/fs/ntfs/ntfs_vnops.c
cvs rdiff -u -r1.39.2.1 -r1.39.2.2 src/sys/fs/ptyfs/ptyfs_vnops.c
cvs rdiff -u -r1.27.2.1 -r1.27.2.2 src/sys/fs/puffs/puffs_node.c
cvs rdiff -u -r1.82 -r1.82.2.1 src/sys/fs/puffs/puffs_sys.h
cvs rdiff -u -r1.80.2.2 -r1.80.2.3 src/sys/fs/smbfs/smbfs_vnops.c
cvs rdiff -u -r1.46 -r1.46.2.1 src/sys/fs/sysvbfs/sysvbfs_vnops.c
cvs rdiff -u -r1.98.2.1 -r1.98.2.2 src/sys/fs/tmpfs/tmpfs_vnops.c
cvs rdiff -u -r1.72.2.1 -r1.72.2.2 src/sys/fs/udf/udf_vnops.c
cvs rdiff -u -r1.11 -r1.11.2.1 src/sys/fs/v7fs/v7fs_vnops.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/fs/adosfs/advnops.c
diff -u src/sys/fs/adosfs/advnops.c:1.39.2.1 src/sys/fs/adosfs/advnops.c:1.39.2.2
--- src/sys/fs/adosfs/advnops.c:1.39.2.1	Mon Feb 25 00:29:46 2013
+++ src/sys/fs/adosfs/advnops.c	Sun Jun 23 06:18:27 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: advnops.c,v 1.39.2.1 2013/02/25 00:29:46 tls Exp $	*/
+/*	$NetBSD: advnops.c,v 1.39.2.2 2013/06/23 06:18:27 tls Exp $	*/
 
 /*
  * Copyright (c) 1994 Christian E. Hopps
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: advnops.c,v 1.39.2.1 2013/02/25 00:29:46 tls Exp $");
+__KERNEL_RCSID(0, "$NetBSD: advnops.c,v 1.39.2.2 2013/06/23 06:18:27 tls Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -776,7 +776,7 @@ adosfs_check_permitted(struct vnode *vp,
 {
 	mode_t file_mode = adunixprot(ap->adprot) & ap->amp->mask;
 
-	return kauth_authorize_vnode(cred, kauth_access_action(mode,
+	return kauth_authorize_vnode(cred, KAUTH_ACCESS_ACTION(mode,
 	    vp->v_type, file_mode), vp, NULL, genfs_can_access(vp->v_type,
 	    file_mode, ap->uid, ap->gid, mode, cred));
 }

Index: src/sys/fs/cd9660/cd9660_extern.h
diff -u src/sys/fs/cd9660/cd9660_extern.h:1.24 src/sys/fs/cd9660/cd9660_extern.h:1.24.40.1
--- src/sys/fs/cd9660/cd9660_extern.h:1.24	Sat Jun 28 01:34:05 2008
+++ src/sys/fs/cd9660/cd9660_extern.h	Sun Jun 23 06:18:27 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: cd9660_extern.h,v 1.24 2008/06/28 01:34:05 rumble Exp $	*/
+/*	$NetBSD: cd9660_extern.h,v 1.24.40.1 2013/06/23 06:18:27 tls Exp $	*/
 
 /*-
  * Copyright (c) 1994
@@ -85,10 +85,10 @@ struct iso_mnt {
 
 #define VFSTOISOFS(mp)	((struct iso_mnt *)((mp)->mnt_data))
 
-#define blkoff(imp, loc)	((loc) & (imp)->im_bmask)
+#define cd9660_blkoff(imp, loc)		((loc) & (imp)->im_bmask)
 #define lblktosize(imp, blk)	((blk) << (imp)->im_bshift)
 #define lblkno(imp, loc)	((loc) >> (imp)->im_bshift)
-#define blksize(imp, ip, lbn)	((imp)->logical_block_size)
+#define cd9660_blksize(imp, ip, lbn)	((imp)->logical_block_size)
 
 #ifdef _KERNEL
 

Index: src/sys/fs/cd9660/cd9660_lookup.c
diff -u src/sys/fs/cd9660/cd9660_lookup.c:1.20.2.2 src/sys/fs/cd9660/cd9660_lookup.c:1.20.2.3
--- src/sys/fs/cd9660/cd9660_lookup.c:1.20.2.2	Mon Feb 25 00:29:46 2013
+++ src/sys/fs/cd9660/cd9660_lookup.c	Sun Jun 23 06:18:27 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: cd9660_lookup.c,v 1.20.2.2 2013/02/25 00:29:46 tls Exp $	*/
+/*	$NetBSD: cd9660_lookup.c,v 1.20.2.3 2013/06/23 06:18:27 tls Exp $	*/
 
 /*-
  * Copyright (c) 1989, 1993, 1994
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cd9660_lookup.c,v 1.20.2.2 2013/02/25 00:29:46 tls Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cd9660_lookup.c,v 1.20.2.3 2013/06/23 06:18:27 tls Exp $");
 
 #include <sys/param.h>
 #include <sys/namei.h>
@@ -422,14 +422,14 @@ cd9660_blkatoff(struct vnode *vp, off_t 
 	ip = VTOI(vp);
 	imp = ip->i_mnt;
 	lbn = lblkno(imp, offset);
-	bsize = blksize(imp, ip, lbn);
+	bsize = cd9660_blksize(imp, ip, lbn);
 
 	if ((error = bread(vp, lbn, bsize, NOCRED, 0, &bp)) != 0) {
 		*bpp = NULL;
 		return (error);
 	}
 	if (res)
-		*res = (char *)bp->b_data + blkoff(imp, offset);
+		*res = (char *)bp->b_data + cd9660_blkoff(imp, offset);
 	*bpp = bp;
 	return (0);
 }

Index: src/sys/fs/cd9660/cd9660_vfsops.c
diff -u src/sys/fs/cd9660/cd9660_vfsops.c:1.75.2.1 src/sys/fs/cd9660/cd9660_vfsops.c:1.75.2.2
--- src/sys/fs/cd9660/cd9660_vfsops.c:1.75.2.1	Mon Feb 25 00:29:46 2013
+++ src/sys/fs/cd9660/cd9660_vfsops.c	Sun Jun 23 06:18:27 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: cd9660_vfsops.c,v 1.75.2.1 2013/02/25 00:29:46 tls Exp $	*/
+/*	$NetBSD: cd9660_vfsops.c,v 1.75.2.2 2013/06/23 06:18:27 tls Exp $	*/
 
 /*-
  * Copyright (c) 1994
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cd9660_vfsops.c,v 1.75.2.1 2013/02/25 00:29:46 tls Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cd9660_vfsops.c,v 1.75.2.2 2013/06/23 06:18:27 tls Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -766,7 +766,7 @@ cd9660_vget_internal(struct mount *mp, i
 			return (ESTALE);
 		}
 
-		off = blkoff(imp, ino);
+		off = cd9660_blkoff(imp, ino);
 		if (off + ISO_DIRECTORY_RECORD_SIZE > imp->logical_block_size) {
 			vput(vp);
 			printf("fhtovp: crosses block boundary %d\n",

Index: src/sys/fs/cd9660/cd9660_vnops.c
diff -u src/sys/fs/cd9660/cd9660_vnops.c:1.41.2.1 src/sys/fs/cd9660/cd9660_vnops.c:1.41.2.2
--- src/sys/fs/cd9660/cd9660_vnops.c:1.41.2.1	Mon Feb 25 00:29:46 2013
+++ src/sys/fs/cd9660/cd9660_vnops.c	Sun Jun 23 06:18:27 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: cd9660_vnops.c,v 1.41.2.1 2013/02/25 00:29:46 tls Exp $	*/
+/*	$NetBSD: cd9660_vnops.c,v 1.41.2.2 2013/06/23 06:18:27 tls Exp $	*/
 
 /*-
  * Copyright (c) 1994
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cd9660_vnops.c,v 1.41.2.1 2013/02/25 00:29:46 tls Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cd9660_vnops.c,v 1.41.2.2 2013/06/23 06:18:27 tls Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -117,7 +117,7 @@ cd9660_check_permitted(struct vnode *vp,
     kauth_cred_t cred)
 {
 
-	return kauth_authorize_vnode(cred, kauth_access_action(mode,
+	return kauth_authorize_vnode(cred, KAUTH_ACCESS_ACTION(mode,
 	    vp->v_type, ip->inode.iso_mode & ALLPERMS), vp, NULL,
 	    genfs_can_access(vp->v_type, ip->inode.iso_mode & ALLPERMS,
 	    ip->inode.iso_uid, ip->inode.iso_gid, mode, cred));
@@ -250,17 +250,17 @@ cd9660_read(void *v)
 
 	do {
 		lbn = lblkno(imp, uio->uio_offset);
-		on = blkoff(imp, uio->uio_offset);
+		on = cd9660_blkoff(imp, uio->uio_offset);
 		n = MIN(imp->logical_block_size - on, uio->uio_resid);
 		diff = (off_t)ip->i_size - uio->uio_offset;
 		if (diff <= 0)
 			return (0);
 		if (diff < n)
 			n = diff;
-		size = blksize(imp, ip, lbn);
+		size = cd9660_blksize(imp, ip, lbn);
 		rablock = lbn + 1;
 		if (lblktosize(imp, rablock) < ip->i_size) {
-			rasize = blksize(imp, ip, rablock);
+			rasize = cd9660_blksize(imp, ip, rablock);
 			error = breadn(vp, lbn, size, &rablock,
 				       &rasize, 1, NOCRED, 0, &bp);
 		} else {

Index: src/sys/fs/efs/efs_vnops.c
diff -u src/sys/fs/efs/efs_vnops.c:1.26.2.2 src/sys/fs/efs/efs_vnops.c:1.26.2.3
--- src/sys/fs/efs/efs_vnops.c:1.26.2.2	Mon Feb 25 00:29:47 2013
+++ src/sys/fs/efs/efs_vnops.c	Sun Jun 23 06:18:27 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: efs_vnops.c,v 1.26.2.2 2013/02/25 00:29:47 tls Exp $	*/
+/*	$NetBSD: efs_vnops.c,v 1.26.2.3 2013/06/23 06:18:27 tls Exp $	*/
 
 /*
  * Copyright (c) 2006 Stephen M. Rumble <[email protected]>
@@ -17,7 +17,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: efs_vnops.c,v 1.26.2.2 2013/02/25 00:29:47 tls Exp $");
+__KERNEL_RCSID(0, "$NetBSD: efs_vnops.c,v 1.26.2.3 2013/06/23 06:18:27 tls Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -149,7 +149,7 @@ efs_check_permitted(struct vnode *vp, st
     kauth_cred_t cred)
 {
 
-	return kauth_authorize_vnode(cred, kauth_access_action(mode,
+	return kauth_authorize_vnode(cred, KAUTH_ACCESS_ACTION(mode,
 	    vp->v_type, eip->ei_mode), vp, NULL, genfs_can_access(vp->v_type,
 	    eip->ei_mode, eip->ei_uid, eip->ei_gid, mode, cred));
 }

Index: src/sys/fs/filecorefs/filecore_extern.h
diff -u src/sys/fs/filecorefs/filecore_extern.h:1.20 src/sys/fs/filecorefs/filecore_extern.h:1.20.14.1
--- src/sys/fs/filecorefs/filecore_extern.h:1.20	Mon May 23 22:00:30 2011
+++ src/sys/fs/filecorefs/filecore_extern.h	Sun Jun 23 06:18:27 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: filecore_extern.h,v 1.20 2011/05/23 22:00:30 rmind Exp $	*/
+/*	$NetBSD: filecore_extern.h,v 1.20.14.1 2013/06/23 06:18:27 tls Exp $	*/
 
 /*-
  * Copyright (c) 1994 The Regents of the University of California.
@@ -96,10 +96,10 @@ struct filecore_mnt {
 
 #define VFSTOFILECORE(mp)	((struct filecore_mnt *)((mp)->mnt_data))
 
-#define blkoff(fcp, loc)	((loc) & ((fcp)->blksize-1))
+#define filecore_blkoff(fcp, loc)	((loc) & ((fcp)->blksize-1))
 #define lblktosize(fcp, blk)	((blk) << (fcp)->log2bsize)
 #define lblkno(fcp, loc)	((loc) >> (fcp)->log2bsize)
-#define blksize(fcp, ip, lbn)	((fcp)->blksize)
+#define filecore_blksize(fcp, ip, lbn)	((fcp)->blksize)
 
 extern struct pool filecore_node_pool;
 

Index: src/sys/fs/filecorefs/filecore_vnops.c
diff -u src/sys/fs/filecorefs/filecore_vnops.c:1.34.2.1 src/sys/fs/filecorefs/filecore_vnops.c:1.34.2.2
--- src/sys/fs/filecorefs/filecore_vnops.c:1.34.2.1	Mon Feb 25 00:29:47 2013
+++ src/sys/fs/filecorefs/filecore_vnops.c	Sun Jun 23 06:18:27 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: filecore_vnops.c,v 1.34.2.1 2013/02/25 00:29:47 tls Exp $	*/
+/*	$NetBSD: filecore_vnops.c,v 1.34.2.2 2013/06/23 06:18:27 tls Exp $	*/
 
 /*-
  * Copyright (c) 1994 The Regents of the University of California.
@@ -66,7 +66,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: filecore_vnops.c,v 1.34.2.1 2013/02/25 00:29:47 tls Exp $");
+__KERNEL_RCSID(0, "$NetBSD: filecore_vnops.c,v 1.34.2.2 2013/06/23 06:18:27 tls Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -126,7 +126,7 @@ filecore_check_permitted(struct vnode *v
 {
 	struct filecore_mnt *fcmp = ip->i_mnt;
 
-	return kauth_authorize_vnode(cred, kauth_access_action(mode,
+	return kauth_authorize_vnode(cred, KAUTH_ACCESS_ACTION(mode,
 	    vp->v_type, filecore_mode(ip)), vp, NULL,
 	    genfs_can_access(vp->v_type, filecore_mode(ip), fcmp->fc_uid,
 	    fcmp->fc_gid, mode, cred));
@@ -240,14 +240,14 @@ filecore_read(void *v)
 
 	do {
 		lbn = lblkno(fcmp, uio->uio_offset);
-		on = blkoff(fcmp, uio->uio_offset);
-		n = MIN(blksize(fcmp, ip, lbn) - on, uio->uio_resid);
+		on = filecore_blkoff(fcmp, uio->uio_offset);
+		n = MIN(filecore_blksize(fcmp, ip, lbn) - on, uio->uio_resid);
 		diff = (off_t)ip->i_size - uio->uio_offset;
 		if (diff <= 0)
 			return (0);
 		if (diff < n)
 			n = diff;
-		size = blksize(fcmp, ip, lbn);
+		size = filecore_blksize(fcmp, ip, lbn);
 		rablock = lbn + 1;
 		if (ip->i_dirent.attr & FILECORE_ATTR_DIR) {
 			error = filecore_dbread(ip, &bp);

Index: src/sys/fs/hfs/hfs_vnops.c
diff -u src/sys/fs/hfs/hfs_vnops.c:1.26 src/sys/fs/hfs/hfs_vnops.c:1.26.2.1
--- src/sys/fs/hfs/hfs_vnops.c:1.26	Sun Jul 22 00:53:19 2012
+++ src/sys/fs/hfs/hfs_vnops.c	Sun Jun 23 06:18:27 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: hfs_vnops.c,v 1.26 2012/07/22 00:53:19 rmind Exp $	*/
+/*	$NetBSD: hfs_vnops.c,v 1.26.2.1 2013/06/23 06:18:27 tls Exp $	*/
 
 /*-
  * Copyright (c) 2005, 2007 The NetBSD Foundation, Inc.
@@ -101,7 +101,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hfs_vnops.c,v 1.26 2012/07/22 00:53:19 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hfs_vnops.c,v 1.26.2.1 2013/06/23 06:18:27 tls Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_ipsec.h"
@@ -556,7 +556,7 @@ hfs_check_permitted(vnode_t *vp, struct 
     kauth_cred_t cred)
 {
 
-	return kauth_authorize_vnode(cred, kauth_access_action(mode,
+	return kauth_authorize_vnode(cred, KAUTH_ACCESS_ACTION(mode,
 	    va->va_type, va->va_mode), vp, NULL,  genfs_can_access(va->va_type,
 	    va->va_mode, va->va_uid, va->va_gid, mode, cred));
 }

Index: src/sys/fs/msdosfs/msdosfs_vfsops.c
diff -u src/sys/fs/msdosfs/msdosfs_vfsops.c:1.96.2.1 src/sys/fs/msdosfs/msdosfs_vfsops.c:1.96.2.2
--- src/sys/fs/msdosfs/msdosfs_vfsops.c:1.96.2.1	Tue Nov 20 03:02:40 2012
+++ src/sys/fs/msdosfs/msdosfs_vfsops.c	Sun Jun 23 06:18:27 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: msdosfs_vfsops.c,v 1.96.2.1 2012/11/20 03:02:40 tls Exp $	*/
+/*	$NetBSD: msdosfs_vfsops.c,v 1.96.2.2 2013/06/23 06:18:27 tls Exp $	*/
 
 /*-
  * Copyright (C) 1994, 1995, 1997 Wolfgang Solfrank.
@@ -48,7 +48,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: msdosfs_vfsops.c,v 1.96.2.1 2012/11/20 03:02:40 tls Exp $");
+__KERNEL_RCSID(0, "$NetBSD: msdosfs_vfsops.c,v 1.96.2.2 2013/06/23 06:18:27 tls Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -727,6 +727,18 @@ msdosfs_mountfs(struct vnode *devvp, str
 	}
 
 	/*
+	 * Cluster size must be within limit of MAXBSIZE.
+	 * Many FAT filesystems will not have clusters larger than
+	 * 32KiB due to limits in Windows versions before Vista.
+	 */
+	if (pmp->pm_bpcluster > MAXBSIZE) {
+		DPRINTF(("bpcluster %lu > MAXBSIZE %d\n",
+		    pmp->pm_bpcluster, MAXBSIZE));
+		error = EINVAL;
+		goto error_exit;
+	}
+
+	/*
 	 * Release the bootsector buffer.
 	 */
 	brelse(bp, BC_AGE);

Index: src/sys/fs/msdosfs/msdosfs_vnops.c
diff -u src/sys/fs/msdosfs/msdosfs_vnops.c:1.83.2.1 src/sys/fs/msdosfs/msdosfs_vnops.c:1.83.2.2
--- src/sys/fs/msdosfs/msdosfs_vnops.c:1.83.2.1	Mon Feb 25 00:29:47 2013
+++ src/sys/fs/msdosfs/msdosfs_vnops.c	Sun Jun 23 06:18:27 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: msdosfs_vnops.c,v 1.83.2.1 2013/02/25 00:29:47 tls Exp $	*/
+/*	$NetBSD: msdosfs_vnops.c,v 1.83.2.2 2013/06/23 06:18:27 tls Exp $	*/
 
 /*-
  * Copyright (C) 1994, 1995, 1997 Wolfgang Solfrank.
@@ -48,7 +48,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: msdosfs_vnops.c,v 1.83.2.1 2013/02/25 00:29:47 tls Exp $");
+__KERNEL_RCSID(0, "$NetBSD: msdosfs_vnops.c,v 1.83.2.2 2013/06/23 06:18:27 tls Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -223,7 +223,7 @@ msdosfs_check_permitted(struct vnode *vp
 
 	file_mode &= (vp->v_type == VDIR ? pmp->pm_dirmask : pmp->pm_mask);
 
-	return kauth_authorize_vnode(cred, kauth_access_action(mode,
+	return kauth_authorize_vnode(cred, KAUTH_ACCESS_ACTION(mode,
 	    vp->v_type, file_mode), vp, NULL, genfs_can_access(vp->v_type,
 	    file_mode, pmp->pm_uid, pmp->pm_gid, mode, cred));
 }

Index: src/sys/fs/nilfs/nilfs_vnops.c
diff -u src/sys/fs/nilfs/nilfs_vnops.c:1.18.2.1 src/sys/fs/nilfs/nilfs_vnops.c:1.18.2.2
--- src/sys/fs/nilfs/nilfs_vnops.c:1.18.2.1	Tue Nov 20 03:02:40 2012
+++ src/sys/fs/nilfs/nilfs_vnops.c	Sun Jun 23 06:18:27 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: nilfs_vnops.c,v 1.18.2.1 2012/11/20 03:02:40 tls Exp $ */
+/* $NetBSD: nilfs_vnops.c,v 1.18.2.2 2013/06/23 06:18:27 tls Exp $ */
 
 /*
  * Copyright (c) 2008, 2009 Reinoud Zandijk
@@ -28,7 +28,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__KERNEL_RCSID(0, "$NetBSD: nilfs_vnops.c,v 1.18.2.1 2012/11/20 03:02:40 tls Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nilfs_vnops.c,v 1.18.2.2 2013/06/23 06:18:27 tls Exp $");
 #endif /* not lint */
 
 
@@ -315,6 +315,11 @@ return EIO;
 /*
  * bmap functionality that translates logical block numbers to the virtual
  * block numbers to be stored on the vnode itself.
+ *
+ * Important alert!
+ *
+ * If runp is not NULL, the number of contiguous blocks __starting from the
+ * next block after the queried block__ will be returned in runp.
  */
 
 int
@@ -364,7 +369,8 @@ nilfs_trivial_bmap(void *v)
 	run = 1;
 	while ((run < blks) && (l2vmap[run] == *bnp + run))
 		run++;
-	
+	run--;	/* see comment at start of function */
+
 	/* set runlength */
 	if (runp)
 		*runp = run;
@@ -1038,7 +1044,7 @@ nilfs_check_permitted(struct vnode *vp, 
 {
 
 	/* ask the generic genfs_can_access to advice on security */
-	return kauth_authorize_vnode(cred, kauth_access_action(mode,
+	return kauth_authorize_vnode(cred, KAUTH_ACCESS_ACTION(mode,
 	    vp->v_type, vap->va_mode), vp, NULL, genfs_can_access(vp->v_type,
 	    vap->va_mode, vap->va_uid, vap->va_gid, mode, cred));
 }

Index: src/sys/fs/ntfs/ntfs_vnops.c
diff -u src/sys/fs/ntfs/ntfs_vnops.c:1.52.2.1 src/sys/fs/ntfs/ntfs_vnops.c:1.52.2.2
--- src/sys/fs/ntfs/ntfs_vnops.c:1.52.2.1	Tue Nov 20 03:02:40 2012
+++ src/sys/fs/ntfs/ntfs_vnops.c	Sun Jun 23 06:18:27 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: ntfs_vnops.c,v 1.52.2.1 2012/11/20 03:02:40 tls Exp $	*/
+/*	$NetBSD: ntfs_vnops.c,v 1.52.2.2 2013/06/23 06:18:27 tls Exp $	*/
 
 /*
  * Copyright (c) 1992, 1993
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ntfs_vnops.c,v 1.52.2.1 2012/11/20 03:02:40 tls Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ntfs_vnops.c,v 1.52.2.2 2013/06/23 06:18:27 tls Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -424,7 +424,7 @@ ntfs_check_permitted(struct vnode *vp, s
 
 	file_mode = ip->i_mp->ntm_mode | (S_IXUSR|S_IXGRP|S_IXOTH);
 
-	return kauth_authorize_vnode(cred, kauth_access_action(mode, vp->v_type,
+	return kauth_authorize_vnode(cred, KAUTH_ACCESS_ACTION(mode, vp->v_type,
 	    file_mode), vp, NULL, genfs_can_access(vp->v_type, file_mode,
 	    ip->i_mp->ntm_uid, ip->i_mp->ntm_gid, mode, cred));
 }

Index: src/sys/fs/ptyfs/ptyfs_vnops.c
diff -u src/sys/fs/ptyfs/ptyfs_vnops.c:1.39.2.1 src/sys/fs/ptyfs/ptyfs_vnops.c:1.39.2.2
--- src/sys/fs/ptyfs/ptyfs_vnops.c:1.39.2.1	Tue Nov 20 03:02:40 2012
+++ src/sys/fs/ptyfs/ptyfs_vnops.c	Sun Jun 23 06:18:28 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: ptyfs_vnops.c,v 1.39.2.1 2012/11/20 03:02:40 tls Exp $	*/
+/*	$NetBSD: ptyfs_vnops.c,v 1.39.2.2 2013/06/23 06:18:28 tls Exp $	*/
 
 /*
  * Copyright (c) 1993, 1995
@@ -76,7 +76,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ptyfs_vnops.c,v 1.39.2.1 2012/11/20 03:02:40 tls Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ptyfs_vnops.c,v 1.39.2.2 2013/06/23 06:18:28 tls Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -536,7 +536,7 @@ ptyfs_access(void *v)
 		return error;
 
 	return kauth_authorize_vnode(ap->a_cred,
-	    kauth_access_action(ap->a_mode, ap->a_vp->v_type, va.va_mode),
+	    KAUTH_ACCESS_ACTION(ap->a_mode, ap->a_vp->v_type, va.va_mode),
 	    ap->a_vp, NULL, genfs_can_access(va.va_type, va.va_mode, va.va_uid,
 	    va.va_gid, ap->a_mode, ap->a_cred));
 

Index: src/sys/fs/puffs/puffs_node.c
diff -u src/sys/fs/puffs/puffs_node.c:1.27.2.1 src/sys/fs/puffs/puffs_node.c:1.27.2.2
--- src/sys/fs/puffs/puffs_node.c:1.27.2.1	Tue Nov 20 03:02:40 2012
+++ src/sys/fs/puffs/puffs_node.c	Sun Jun 23 06:18:28 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: puffs_node.c,v 1.27.2.1 2012/11/20 03:02:40 tls Exp $	*/
+/*	$NetBSD: puffs_node.c,v 1.27.2.2 2013/06/23 06:18:28 tls Exp $	*/
 
 /*
  * Copyright (c) 2005, 2006, 2007  Antti Kantee.  All Rights Reserved.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: puffs_node.c,v 1.27.2.1 2012/11/20 03:02:40 tls Exp $");
+__KERNEL_RCSID(0, "$NetBSD: puffs_node.c,v 1.27.2.2 2013/06/23 06:18:28 tls Exp $");
 
 #include <sys/param.h>
 #include <sys/hash.h>
@@ -279,7 +279,7 @@ puffs_cookie2hashlist(struct puffs_mount
 {
 	uint32_t hash;
 
-	hash = hash32_buf(&ck, sizeof(void *), HASH32_BUF_INIT);
+	hash = hash32_buf(&ck, sizeof(ck), HASH32_BUF_INIT);
 	return &pmp->pmp_pnodehash[hash % pmp->pmp_npnodehash];
 }
 
@@ -366,11 +366,18 @@ puffs_makeroot(struct puffs_mount *pmp)
 
 /*
  * Locate the in-kernel vnode based on the cookie received given
- * from userspace.  Returns a vnode, if found, NULL otherwise.
+ * from userspace.
  * The parameter "lock" control whether to lock the possible or
  * not.  Locking always might cause us to lock against ourselves
  * in situations where we want the vnode but don't care for the
  * vnode lock, e.g. file server issued putpages.
+ *
+ * returns 0 on success.  otherwise returns an errno or PUFFS_NOSUCHCOOKIE.
+ *
+ * returns PUFFS_NOSUCHCOOKIE if no vnode for the cookie is found.
+ * in that case, if willcreate=true, the pmp_newcookie list is populated with
+ * the given cookie.  it's the caller's responsibility to consume the entry
+ * with calling puffs_getvnode.
  */
 int
 puffs_cookie2vnode(struct puffs_mount *pmp, puffs_cookie_t ck, int lock,

Index: src/sys/fs/puffs/puffs_sys.h
diff -u src/sys/fs/puffs/puffs_sys.h:1.82 src/sys/fs/puffs/puffs_sys.h:1.82.2.1
--- src/sys/fs/puffs/puffs_sys.h:1.82	Sat Aug 11 01:10:11 2012
+++ src/sys/fs/puffs/puffs_sys.h	Sun Jun 23 06:18:28 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: puffs_sys.h,v 1.82 2012/08/11 01:10:11 manu Exp $	*/
+/*	$NetBSD: puffs_sys.h,v 1.82.2.1 2013/06/23 06:18:28 tls Exp $	*/
 
 /*
  * Copyright (c) 2005, 2006  Antti Kantee.  All Rights Reserved.
@@ -147,6 +147,10 @@ struct puffs_mount {
 	struct puffs_node_hashlist	*pmp_pnodehash;
 	int				pmp_npnodehash;
 
+	/*
+	 * a list of cookies which is going to be puffs_getvnode'd.
+	 * this is merely a loose attempt to prevent races.
+	 */
 	LIST_HEAD(, puffs_newcookie)	pmp_newcookie;
 
 	struct mount			*pmp_mp;

Index: src/sys/fs/smbfs/smbfs_vnops.c
diff -u src/sys/fs/smbfs/smbfs_vnops.c:1.80.2.2 src/sys/fs/smbfs/smbfs_vnops.c:1.80.2.3
--- src/sys/fs/smbfs/smbfs_vnops.c:1.80.2.2	Mon Feb 25 00:29:49 2013
+++ src/sys/fs/smbfs/smbfs_vnops.c	Sun Jun 23 06:18:28 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: smbfs_vnops.c,v 1.80.2.2 2013/02/25 00:29:49 tls Exp $	*/
+/*	$NetBSD: smbfs_vnops.c,v 1.80.2.3 2013/06/23 06:18:28 tls Exp $	*/
 
 /*-
  * Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -64,7 +64,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: smbfs_vnops.c,v 1.80.2.2 2013/02/25 00:29:49 tls Exp $");
+__KERNEL_RCSID(0, "$NetBSD: smbfs_vnops.c,v 1.80.2.3 2013/06/23 06:18:28 tls Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -193,7 +193,7 @@ smbfs_check_permitted(struct vnode *vp, 
 	mode_t file_mode = (vp->v_type == VDIR) ? smp->sm_args.dir_mode :
 	    smp->sm_args.file_mode;
 
-	return kauth_authorize_vnode(cred, kauth_access_action(mode,
+	return kauth_authorize_vnode(cred, KAUTH_ACCESS_ACTION(mode,
 	    vp->v_type, file_mode), vp, NULL, genfs_can_access(vp->v_type,
 	    file_mode, smp->sm_args.uid, smp->sm_args.gid, mode, cred));
 }

Index: src/sys/fs/sysvbfs/sysvbfs_vnops.c
diff -u src/sys/fs/sysvbfs/sysvbfs_vnops.c:1.46 src/sys/fs/sysvbfs/sysvbfs_vnops.c:1.46.2.1
--- src/sys/fs/sysvbfs/sysvbfs_vnops.c:1.46	Mon Jun 11 21:11:41 2012
+++ src/sys/fs/sysvbfs/sysvbfs_vnops.c	Sun Jun 23 06:18:28 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: sysvbfs_vnops.c,v 1.46 2012/06/11 21:11:41 agc Exp $	*/
+/*	$NetBSD: sysvbfs_vnops.c,v 1.46.2.1 2013/06/23 06:18:28 tls Exp $	*/
 
 /*-
  * Copyright (c) 2004 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sysvbfs_vnops.c,v 1.46 2012/06/11 21:11:41 agc Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sysvbfs_vnops.c,v 1.46.2.1 2013/06/23 06:18:28 tls Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -218,6 +218,10 @@ sysvbfs_close(void *arg)
 	struct bfs_fileattr attr;
 
 	DPRINTF("%s:\n", __func__);
+
+	if (v->v_mount->mnt_flag & MNT_RDONLY)
+		goto out;
+
 	uvm_vnp_setsize(v, bnode->size);
 
 	memset(&attr, 0xff, sizeof attr);	/* Set VNOVAL all */
@@ -231,6 +235,7 @@ sysvbfs_close(void *arg)
 
 	VOP_FSYNC(a->a_vp, a->a_cred, FSYNC_WAIT, 0, 0);
 
+ out:
 	return 0;
 }
 
@@ -251,7 +256,7 @@ sysvbfs_check_permitted(struct vnode *vp
 {
 	struct bfs_fileattr *attr = &bnode->inode->attr;
 
-	return kauth_authorize_vnode(cred, kauth_access_action(mode,
+	return kauth_authorize_vnode(cred, KAUTH_ACCESS_ACTION(mode,
 	    vp->v_type, attr->mode), vp, NULL, genfs_can_access(vp->v_type,
 	    attr->mode, attr->uid, attr->gid, mode, cred));
 }
@@ -877,6 +882,9 @@ sysvbfs_update(struct vnode *vp, const s
 	struct sysvbfs_node *bnode = vp->v_data;
 	struct bfs_fileattr attr;
 
+	if (vp->v_mount->mnt_flag & MNT_RDONLY)
+		return 0;
+
 	DPRINTF("%s:\n", __func__);
 	memset(&attr, 0xff, sizeof attr);	/* Set VNOVAL all */
 	if (bnode->update_atime) {

Index: src/sys/fs/tmpfs/tmpfs_vnops.c
diff -u src/sys/fs/tmpfs/tmpfs_vnops.c:1.98.2.1 src/sys/fs/tmpfs/tmpfs_vnops.c:1.98.2.2
--- src/sys/fs/tmpfs/tmpfs_vnops.c:1.98.2.1	Tue Nov 20 03:02:41 2012
+++ src/sys/fs/tmpfs/tmpfs_vnops.c	Sun Jun 23 06:18:28 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: tmpfs_vnops.c,v 1.98.2.1 2012/11/20 03:02:41 tls Exp $	*/
+/*	$NetBSD: tmpfs_vnops.c,v 1.98.2.2 2013/06/23 06:18:28 tls Exp $	*/
 
 /*
  * Copyright (c) 2005, 2006, 2007 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tmpfs_vnops.c,v 1.98.2.1 2012/11/20 03:02:41 tls Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tmpfs_vnops.c,v 1.98.2.2 2013/06/23 06:18:28 tls Exp $");
 
 #include <sys/param.h>
 #include <sys/dirent.h>
@@ -422,7 +422,7 @@ tmpfs_access(void *v)
 		return EPERM;
 	}
 
-	return kauth_authorize_vnode(cred, kauth_access_action(mode,
+	return kauth_authorize_vnode(cred, KAUTH_ACCESS_ACTION(mode,
 	    vp->v_type, node->tn_mode), vp, NULL, genfs_can_access(vp->v_type,
 	    node->tn_mode, node->tn_uid, node->tn_gid, mode, cred));
 }

Index: src/sys/fs/udf/udf_vnops.c
diff -u src/sys/fs/udf/udf_vnops.c:1.72.2.1 src/sys/fs/udf/udf_vnops.c:1.72.2.2
--- src/sys/fs/udf/udf_vnops.c:1.72.2.1	Tue Nov 20 03:02:41 2012
+++ src/sys/fs/udf/udf_vnops.c	Sun Jun 23 06:18:28 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: udf_vnops.c,v 1.72.2.1 2012/11/20 03:02:41 tls Exp $ */
+/* $NetBSD: udf_vnops.c,v 1.72.2.2 2013/06/23 06:18:28 tls Exp $ */
 
 /*
  * Copyright (c) 2006, 2008 Reinoud Zandijk
@@ -32,7 +32,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__KERNEL_RCSID(0, "$NetBSD: udf_vnops.c,v 1.72.2.1 2012/11/20 03:02:41 tls Exp $");
+__KERNEL_RCSID(0, "$NetBSD: udf_vnops.c,v 1.72.2.2 2013/06/23 06:18:28 tls Exp $");
 #endif /* not lint */
 
 
@@ -1377,7 +1377,7 @@ udf_check_permitted(struct vnode *vp, st
 {
 
 	/* ask the generic genfs_can_access to advice on security */
-	return kauth_authorize_vnode(cred, kauth_access_action(mode,
+	return kauth_authorize_vnode(cred, KAUTH_ACCESS_ACTION(mode,
 	    vp->v_type, vap->va_mode), vp, NULL, genfs_can_access(vp->v_type,
 	    vap->va_mode, vap->va_uid, vap->va_gid, mode, cred));
 }

Index: src/sys/fs/v7fs/v7fs_vnops.c
diff -u src/sys/fs/v7fs/v7fs_vnops.c:1.11 src/sys/fs/v7fs/v7fs_vnops.c:1.11.2.1
--- src/sys/fs/v7fs/v7fs_vnops.c:1.11	Sun Apr 29 22:54:00 2012
+++ src/sys/fs/v7fs/v7fs_vnops.c	Sun Jun 23 06:18:28 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: v7fs_vnops.c,v 1.11 2012/04/29 22:54:00 chs Exp $	*/
+/*	$NetBSD: v7fs_vnops.c,v 1.11.2.1 2013/06/23 06:18:28 tls Exp $	*/
 
 /*-
  * Copyright (c) 2004, 2011 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: v7fs_vnops.c,v 1.11 2012/04/29 22:54:00 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: v7fs_vnops.c,v 1.11.2.1 2013/06/23 06:18:28 tls Exp $");
 #if defined _KERNEL_OPT
 #include "opt_v7fs.h"
 #endif
@@ -374,7 +374,7 @@ v7fs_check_permitted(struct vnode *vp, s
 
 	struct v7fs_inode *inode = &v7node->inode;
 
-	return kauth_authorize_vnode(cred, kauth_access_action(mode,
+	return kauth_authorize_vnode(cred, KAUTH_ACCESS_ACTION(mode,
 	    vp->v_type, inode->mode), vp, NULL, genfs_can_access(vp->v_type,
 	    inode->mode, inode->uid, inode->gid, mode, cred));
 }

Reply via email to