summaryrefslogtreecommitdiffstats
path: root/usr.sbin/extattrctl
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2000-09-07 20:32:31 +0000
committerrwatson <rwatson@FreeBSD.org>2000-09-07 20:32:31 +0000
commit1e15252cd8258c28046315403334384db1b80519 (patch)
tree80adc0909ea92a242556bf04a22e3167ef0bf268 /usr.sbin/extattrctl
parentca48f25217dc33c4dc9e64790b02967a5501633e (diff)
downloadFreeBSD-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/extattrctl')
-rw-r--r--usr.sbin/extattrctl/extattrctl.c8
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);
OpenPOWER on IntegriCloud