1
linux/fs/ufs
Evgeniy Dushistov ecdc639487 [PATCH] ufs: truncate correction
1) When we allocated last fragment in ufs_truncate, we read page, check
   if block mapped to address, and if not trying to allocate it.  This is
   wrong behaviour, fragment may be NOT allocated, but mapped, this
   happened because of "block map" function not checked allocated fragment
   or not, it just take address of the first fragment in the block, add
   offset of fragment and return result, this is correct behaviour in
   almost all situation except call from ufs_truncate.

2) Almost all implementation of UFS, which I can investigate have such
   "defect": if you have full disk, and try truncate file, for example 3GB
   to 2MB, and have hole in this region, truncate return -ENOSPC.  I tried
   evade from this problem, but "block allocation" algorithm is tied to
   right value of i_lastfrag, and fix of this corner case may slow down of
   ordinaries scenarios, so this patch makes behavior of "truncate"
   operations similar to what other UFS implementations do.

Signed-off-by: Evgeniy Dushistov <dushistov@mail.ru>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-08-27 11:01:31 -07:00
..
balloc.c [PATCH] ufs: handle truncated pages 2006-08-06 08:57:46 -07:00
cylinder.c [PATCH] ufs: easy debug 2006-06-25 10:01:03 -07:00
dir.c [PATCH] ufs: little directory lookup optimization 2006-06-25 10:01:03 -07:00
file.c [PATCH] ufs: truncate should allocate block for last byte 2006-07-01 09:56:03 -07:00
ialloc.c [PATCH] ufs: ubh_ll_rw_block cleanup 2006-06-25 10:01:04 -07:00
inode.c [PATCH] ufs: write to hole in big file 2006-08-27 11:01:31 -07:00
Makefile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
namei.c [PATCH] ufs: remove incorrect unlock_kernel from failure path in ufs_symlink() 2006-07-31 13:28:42 -07:00
super.c [PATCH] lockdep: annotate the quota code 2006-07-03 15:27:08 -07:00
swab.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
symlink.c [PATCH] Fix up symlink function pointers 2005-08-19 18:08:21 -07:00
truncate.c [PATCH] ufs: truncate correction 2006-08-27 11:01:31 -07:00
util.c [PATCH] ufs: handle truncated pages 2006-08-06 08:57:46 -07:00
util.h [PATCH] ufs: truncate should allocate block for last byte 2006-07-01 09:56:03 -07:00