dump(8) blocksize strangeness

Regardless of the blocksize (-b) I specify when running dump(8), the output always reports blocksize = 65536 as if I specified -b64. For example, the command dump -5au -L -b32 -C16 -f 20131109221410-5-root / yielded the following output:

Code:
  DUMP: Date of this level 5 dump: Sat Nov  9 22:14:11 2013
  DUMP: Date of last level 2 dump: Wed Nov  6 22:11:01 2013
  DUMP: Dumping snapshot of /dev/ada0s1a (/) to 20131109221410-5-root
  DUMP: mapping (Pass I) [regular files]
  DUMP: Cache 16 MB, [HIGHLIGHT]blocksize = 65536[/HIGHLIGHT]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 77574 tape blocks.
  DUMP: dumping (Pass III) [directories]
  DUMP: dumping (Pass IV) [regular files]
  DUMP: DUMP: 77511 tape blocks on 1 volume
  DUMP: finished in 8 seconds, throughput 9688 KBytes/sec
  DUMP: level 5 dump on Sat Nov  9 22:14:11 2013
  DUMP: Closing 20131109221410-5-root
  DUMP: DUMP IS DONE

Why is the blocksize not reported as 32,768? I have also tried a blocksize of 16 with the same result. Am I missing something obvious here?

This is not really a problem, I am just trying to understand the behavior.
 
Okay, so I figured this out by looking at the dump(8) source in /usr/src/sbin/dump, specifically in cache.c.

Since I am dumping to a file, the program calculates the effective blocksize as the lesser of the MAXBLOCKSIZE (65,536) and the UFS filesystem blocksize * block factor constant (32,768 * 4). Since this is greater than the MAXBLOCKSIZE, it sets the blocksize to 65,536.
 
Back
Top