diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1999-01-04 16:03:48 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 1999-01-04 16:03:48 +0000 |
commit | 78c388aed2b7184182c08428db1de6c872d815f5 (patch) | |
tree | 4b2003b1b4ceb241a17faa995da8dd1004bb8e45 /fs/hfs/extent.c | |
parent | eb7a5bf93aaa4be1d7c6181100ab7639e74d67f7 (diff) |
Merge with Linux 2.1.131 and more MIPS goodies.
(Did I mention that CVS is buggy ...)
Diffstat (limited to 'fs/hfs/extent.c')
-rw-r--r-- | fs/hfs/extent.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/hfs/extent.c b/fs/hfs/extent.c index 03d6b0acd..1fc749f34 100644 --- a/fs/hfs/extent.c +++ b/fs/hfs/extent.c @@ -339,6 +339,7 @@ static void delete_extent(struct hfs_fork *fork, struct hfs_extent *ext) if (error) { hfs_warn("hfs_truncate: error %d deleting an extent.\n", error); } + HFS_DELETE(ext); } @@ -486,6 +487,7 @@ static void shrink_fork(struct hfs_fork *fork, int ablocks) if ((count = next + 1 - ablocks) > 0) { for (i=2; (i>=0) && !ext->length[i]; --i) {}; + lock_bitmap(mdb); while (count && (ext->length[i] <= count)) { ext->end -= ext->length[i]; count -= ext->length[i]; @@ -508,6 +510,7 @@ static void shrink_fork(struct hfs_fork *fork, int ablocks) "blocks.\n", error); } } + unlock_bitmap(mdb); update_ext(fork, ext); } @@ -611,7 +614,9 @@ more_extents: } else { if (!(ext = new_extent(fork, ext, blocks/ablksz, start, len, ablksz))) { + lock_bitmap(mdb); hfs_clear_vbm_bits(mdb, start, len); + unlock_bitmap(mdb); return; } } |