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));
}