svn commit: r368396 - in head/sys: fs/ext2fs ufs/ufs
Kirk McKusick
mckusick at FreeBSD.org
Sun Dec 6 20:50:22 UTC 2020
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. */
More information about the svn-src-all
mailing list