diff options
author | rwatson <rwatson@FreeBSD.org> | 2000-09-07 20:32:31 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2000-09-07 20:32:31 +0000 |
commit | 1e15252cd8258c28046315403334384db1b80519 (patch) | |
tree | 80adc0909ea92a242556bf04a22e3167ef0bf268 /usr.sbin | |
parent | ca48f25217dc33c4dc9e64790b02967a5501633e (diff) | |
download | FreeBSD-src-1e15252cd8258c28046315403334384db1b80519.zip FreeBSD-src-1e15252cd8258c28046315403334384db1b80519.tar.gz |
o When pre-allocating attribute storage space, also allocate space for
attribute instance headers, or higher inode numbers will require
additional disk blocks to be allocated later.
Obtained from: TrustedBSD Project
Diffstat (limited to 'usr.sbin')
-rw-r--r-- | usr.sbin/extattrctl/extattrctl.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/usr.sbin/extattrctl/extattrctl.c b/usr.sbin/extattrctl/extattrctl.c index c5c2508..7d34831 100644 --- a/usr.sbin/extattrctl/extattrctl.c +++ b/usr.sbin/extattrctl/extattrctl.c @@ -82,7 +82,7 @@ initattr(int argc, char *argv[]) char *fs_path = NULL; char *zero_buf = NULL; long loop, num_inodes; - int ch, i, error; + int ch, i, error, chunksize; optind = 0; while ((ch = getopt(argc, argv, "p:r:w:")) != -1) @@ -117,9 +117,11 @@ initattr(int argc, char *argv[]) } memset(zero_buf, 0, uef.uef_size); num_inodes = num_inodes_by_path(fs_path); + chunksize = sizeof(struct ufs_extattr_header) + + uef.uef_size; for (loop = 0; loop < num_inodes; loop++) { - error = write(i, zero_buf, uef.uef_size); - if (error != uef.uef_size) { + error = write(i, zero_buf, chunksize); + if (error != chunksize) { perror("write"); unlink(argv[1]); return (-1); |