summaryrefslogtreecommitdiff
path: root/kernel/fork.c
diff options
context:
space:
mode:
authorHirofumi Ogawa <hirofumi@mail.parknet.co.jp>2005-03-09 17:05:49 -0800
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-03-09 17:05:49 -0800
commitfbc3c2a76fe53a156f91e88ce449e5112aaf8e4c (patch)
tree841db9ea182e6208e1a3b284e1853c5145631dfd /kernel/fork.c
parente33b8d604db24635de90abd7f3ba0cf4ad6373a0 (diff)
[PATCH] FAT: Update ->rename() path
a) If old_dir == new_dir, we don't need to update the ".." entry, so this doesn't touch it if unneeded. b) old algorithm is using 1) add a new entry (doen't point the data cluster yet). 2) remove a old entry. 3) switch the data cluster to new entry. 4) update a ".." entry this order lose the data cluster when between 2) and 3). Instead of above, this is using 1) add a new entry (doen't point the data cluster yet). 2) switch the data cluster to new entry. 3) update a ".." entry if needed. 4) remove a old entry. this order would not lose the data cluster, but on disk metadata is corrupted on some point (later, fsck would recover this corruption without losing the data). c) use synchronous update. d) Fix the corrupted directory check created by 1 of new algorithm. 1) Fix fat_bmap(). If directory's ->i_start == 0, fat_bmap() is handling it as root directory, this removes that strange behavior. 2) On mkdir() path if directory's ->i_start == 0, returns -EIO. Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel/fork.c')
0 files changed, 0 insertions, 0 deletions