Author: mckusick
Date: Sun Dec  6 20:50:21 2020
New Revision: 368396
URL: https://svnweb.freebsd.org/changeset/base/368396

Log:
  Document the BA_CLRBUF flag used in ufs and ext2fs filesystems.
  
  Suggested by: kib
  MFC after:    3 days
  Sponsored by: Netflix

Modified:
  head/sys/fs/ext2fs/ext2_extern.h
  head/sys/ufs/ufs/ufs_extern.h

Modified: head/sys/fs/ext2fs/ext2_extern.h
==============================================================================
--- head/sys/fs/ext2fs/ext2_extern.h    Sun Dec  6 19:24:38 2020        
(r368395)
+++ head/sys/fs/ext2fs/ext2_extern.h    Sun Dec  6 20:50:21 2020        
(r368396)
@@ -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 UFS_BALLOC() functions.
  */
 #define        BA_CLRBUF       0x00010000      /* Clear invalid areas of 
buffer. */
 #define        BA_SEQMASK      0x7F000000      /* Bits holding seq heuristic. 
*/

Modified: head/sys/ufs/ufs/ufs_extern.h
==============================================================================
--- head/sys/ufs/ufs/ufs_extern.h       Sun Dec  6 19:24:38 2020        
(r368395)
+++ head/sys/ufs/ufs/ufs_extern.h       Sun Dec  6 20:50:21 2020        
(r368396)
@@ -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-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to