diff options
author | mckusick <mckusick@FreeBSD.org> | 2007-02-27 07:28:17 +0000 |
---|---|---|
committer | mckusick <mckusick@FreeBSD.org> | 2007-02-27 07:28:17 +0000 |
commit | 325fee4370b0488b1ada13dbf12773262a771371 (patch) | |
tree | 20cd12805896ba5ab8fa7782b644151d44cca80b /sbin/dump | |
parent | b7672bad26dbe5a50937a2e258fe957b1bc19a8d (diff) | |
download | FreeBSD-src-325fee4370b0488b1ada13dbf12773262a771371.zip FreeBSD-src-325fee4370b0488b1ada13dbf12773262a771371.tar.gz |
Fix an error in dumping large sparse files containing extended attributes.
Diffstat (limited to 'sbin/dump')
-rw-r--r-- | sbin/dump/traverse.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sbin/dump/traverse.c b/sbin/dump/traverse.c index cb170d1..d3415b7 100644 --- a/sbin/dump/traverse.c +++ b/sbin/dump/traverse.c @@ -688,7 +688,7 @@ ufs2_blksout(union dinode *dp, ufs2_daddr_t *blkp, int frags, ino_t ino, else spcl.c_addr[j - i] = 0; spcl.c_count = count - i; - if (last && !writingextdata) + if (last && count == blks && !writingextdata) added = appendextdata(dp); writeheader(ino); bp = &blkp[i / tbperdb]; @@ -701,7 +701,7 @@ ufs2_blksout(union dinode *dp, ufs2_daddr_t *blkp, int frags, ino_t ino, } spcl.c_type = TS_ADDR; spcl.c_count = 0; - if (last && !writingextdata) { + if (last && count == blks && !writingextdata) { writingextdata = 1; writeextdata(dp, ino, added); writingextdata = 0; |