Author: mckusick
Date: Wed Dec  9 22:37:23 2020
New Revision: 368494
URL: https://svnweb.freebsd.org/changeset/base/368494

Log:
  MFC of 368396 and 368425.
  
  Document BA_CLRBUF flag.
  
  Sponsored by: Netflix

Modified:
  stable/12/sys/fs/ext2fs/ext2_extern.h
  stable/12/sys/ufs/ufs/ufs_extern.h
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/fs/ext2fs/ext2_extern.h
==============================================================================
--- stable/12/sys/fs/ext2fs/ext2_extern.h       Wed Dec  9 20:38:26 2020        
(r368493)
+++ stable/12/sys/fs/ext2fs/ext2_extern.h       Wed Dec  9 22:37:23 2020        
(r368494)
@@ -135,6 +135,13 @@ void       ext2_gd_csum_set(struct m_ext2fs *);
 
 /* Flags to low-level allocation routines.
  * The low 16-bits are reserved for IO_ flags from vnode.h.
+ *
+ * The BA_CLRBUF flag specifies that the existing content of the block
+ * will not be completely overwritten by the caller, so buffers for new
+ * blocks must be cleared and buffers for existing blocks must be read.
+ * When BA_CLRBUF is not set the buffer will be completely overwritten
+ * and there is no reason to clear them or to spend I/O fetching existing
+ * data. The BA_CLRBUF flag is handled in the ext2_balloc() functions.
  */
 #define        BA_CLRBUF       0x00010000      /* Clear invalid areas of 
buffer. */
 #define        BA_SEQMASK      0x7F000000      /* Bits holding seq heuristic. 
*/

Modified: stable/12/sys/ufs/ufs/ufs_extern.h
==============================================================================
--- stable/12/sys/ufs/ufs/ufs_extern.h  Wed Dec  9 20:38:26 2020        
(r368493)
+++ stable/12/sys/ufs/ufs/ufs_extern.h  Wed Dec  9 22:37:23 2020        
(r368494)
@@ -119,6 +119,13 @@ void       softdep_revert_rmdir(struct inode *, struct 
inode
  *
  * Note: The general vfs code typically limits the sequential heuristic
  * count to 127.  See sequential_heuristic() in kern/vfs_vnops.c
+ *
+ * The BA_CLRBUF flag specifies that the existing content of the block
+ * will not be completely overwritten by the caller, so buffers for new
+ * blocks must be cleared and buffers for existing blocks must be read.
+ * When BA_CLRBUF is not set the buffer will be completely overwritten
+ * and there is no reason to clear them or to spend I/O fetching existing
+ * data. The BA_CLRBUF flag is handled in the UFS_BALLOC() functions.
  */
 #define        BA_CLRBUF       0x00010000      /* Clear invalid areas of 
buffer. */
 #define        BA_METAONLY     0x00020000      /* Return indirect block 
buffer. */
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to