svn commit: r336935 - head/sys/fs/msdosfs

Ed Maste emaste at FreeBSD.org
Mon Jul 30 20:36:52 UTC 2018


Author: emaste
Date: Mon Jul 30 20:36:51 2018
New Revision: 336935
URL: https://svnweb.freebsd.org/changeset/base/336935

Log:
  msdosfs: use same max filesize #define as NetBSD and move to header
  
  For use by makefs msdosfs support.
  
  Obtained from:	NetBSD denode.h 1.6
  Sponsored by:	The FreeBSD Foundation

Modified:
  head/sys/fs/msdosfs/denode.h
  head/sys/fs/msdosfs/msdosfs_vnops.c

Modified: head/sys/fs/msdosfs/denode.h
==============================================================================
--- head/sys/fs/msdosfs/denode.h	Mon Jul 30 20:35:50 2018	(r336934)
+++ head/sys/fs/msdosfs/denode.h	Mon Jul 30 20:36:51 2018	(r336935)
@@ -174,6 +174,8 @@ struct denode {
 #define	DE_MODIFIED	0x0020	/* Denode has been modified */
 #define	DE_RENAME	0x0040	/* Denode is in the process of being renamed */
 
+/* Maximum size of a file on a FAT filesystem */
+#define MSDOSFS_FILESIZE_MAX	0xFFFFFFFFLL
 
 /*
  * Transfer directory entries between internal and external form.

Modified: head/sys/fs/msdosfs/msdosfs_vnops.c
==============================================================================
--- head/sys/fs/msdosfs/msdosfs_vnops.c	Mon Jul 30 20:35:50 2018	(r336934)
+++ head/sys/fs/msdosfs/msdosfs_vnops.c	Mon Jul 30 20:36:51 2018	(r336935)
@@ -79,8 +79,6 @@
 #include <fs/msdosfs/fat.h>
 #include <fs/msdosfs/msdosfsmount.h>
 
-#define	DOS_FILESIZE_MAX	0xffffffff
-
 /*
  * Prototypes for MSDOSFS vnode operations
  */
@@ -548,7 +546,7 @@ msdosfs_read(struct vop_read_args *ap)
 	 * The caller is supposed to ensure that
 	 * uio->uio_offset >= 0 and uio->uio_resid >= 0.
 	 * We don't need to check for large offsets as in ffs because
-	 * dep->de_FileSize <= DOS_FILESIZE_MAX < OFF_MAX, so large
+	 * dep->de_FileSize <= MSDOSFS_FILESIZE_MAX < OFF_MAX, so large
 	 * offsets cannot cause overflow even in theory.
 	 */
 
@@ -663,7 +661,7 @@ msdosfs_write(struct vop_write_args *ap)
 	 * The caller is supposed to ensure that
 	 * uio->uio_offset >= 0 and uio->uio_resid >= 0.
 	 */
-	if ((uoff_t)uio->uio_offset + uio->uio_resid > DOS_FILESIZE_MAX)
+	if ((uoff_t)uio->uio_offset + uio->uio_resid > MSDOSFS_FILESIZE_MAX)
 		return (EFBIG);
 
 	/*


More information about the svn-src-head mailing list