From bbc5e78bcb51684a6bd9973fe76c973498a6c9ff Mon Sep 17 00:00:00 2001 From: Tomohiro Kusumi Date: Sun, 6 Nov 2016 15:35:28 +0900 Subject: [PATCH] sys/vfs/hammer: Add HAMMER_BUFSIZE_DOALIGN() and variants The only reason it's "DOALIGN" instead of just "ALIGN" is because that's how macros have been named in HAMMER1/2. "ALIGN" macros represent alignment size. --- sbin/newfs_hammer/newfs_hammer.c | 2 +- sys/vfs/hammer/hammer_disk.h | 10 ++++++++++ sys/vfs/hammer/hammer_ondisk.c | 4 ++-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/sbin/newfs_hammer/newfs_hammer.c b/sbin/newfs_hammer/newfs_hammer.c index 1f0f6aedb6..b8c4e57faf 100644 --- a/sbin/newfs_hammer/newfs_hammer.c +++ b/sbin/newfs_hammer/newfs_hammer.c @@ -216,7 +216,7 @@ main(int ac, char **av) HeaderJunkSize = HAMMER_VOL_JUNK_SIZE; else if (HeaderJunkSize < (int64_t)sizeof(struct hammer_volume_ondisk)) HeaderJunkSize = sizeof(struct hammer_volume_ondisk); - HeaderJunkSize = (HeaderJunkSize + HAMMER_BUFMASK) & ~HAMMER_BUFMASK; + HeaderJunkSize = HAMMER_BUFSIZE_DOALIGN(HeaderJunkSize); /* * Calculate defaults for the boot area and memory log sizes, diff --git a/sys/vfs/hammer/hammer_disk.h b/sys/vfs/hammer/hammer_disk.h index 2caa904443..fcde716ed4 100644 --- a/sys/vfs/hammer/hammer_disk.h +++ b/sys/vfs/hammer/hammer_disk.h @@ -86,6 +86,16 @@ #define HAMMER_OFF_BAD ((hammer_off_t)-1) +#define HAMMER_BUFSIZE_DOALIGN(offset) \ + (((offset) + HAMMER_BUFMASK) & ~HAMMER_BUFMASK) +#define HAMMER_BUFSIZE64_DOALIGN(offset) \ + (((offset) + HAMMER_BUFMASK64) & ~HAMMER_BUFMASK64) + +#define HAMMER_XBUFSIZE_DOALIGN(offset) \ + (((offset) + HAMMER_XBUFMASK) & ~HAMMER_XBUFMASK) +#define HAMMER_XBUFSIZE64_DOALIGN(offset) \ + (((offset) + HAMMER_XBUFMASK64) & ~HAMMER_XBUFMASK64) + /* * The current limit of volumes that can make up a HAMMER FS */ diff --git a/sys/vfs/hammer/hammer_ondisk.c b/sys/vfs/hammer/hammer_ondisk.c index 697b2a0908..253bec5ceb 100644 --- a/sys/vfs/hammer/hammer_ondisk.c +++ b/sys/vfs/hammer/hammer_ondisk.c @@ -1151,7 +1151,7 @@ void * hammer_bread_ext(hammer_mount_t hmp, hammer_off_t buf_offset, int bytes, int *errorp, hammer_buffer_t *bufferp) { - bytes = (bytes + HAMMER_BUFMASK) & ~HAMMER_BUFMASK; + bytes = HAMMER_BUFSIZE_DOALIGN(bytes); return(_hammer_bread(hmp, buf_offset, bytes, 0, errorp, bufferp)); } @@ -1176,7 +1176,7 @@ void * hammer_bnew_ext(hammer_mount_t hmp, hammer_off_t buf_offset, int bytes, int *errorp, hammer_buffer_t *bufferp) { - bytes = (bytes + HAMMER_BUFMASK) & ~HAMMER_BUFMASK; + bytes = HAMMER_BUFSIZE_DOALIGN(bytes); return(_hammer_bread(hmp, buf_offset, bytes, 1, errorp, bufferp)); } -- 2.41.0