Author: wmb
Date: Mon Sep 13 08:34:04 2010
New Revision: 1954
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/1954
Log:
OLPC trac 10359 - fixed ext2 symlink deletion.
Modified:
ofw/fs/ext2fs/dir.fth
ofw/fs/ext2fs/methods.fth
Modified: ofw/fs/ext2fs/dir.fth
==============================================================================
--- ofw/fs/ext2fs/dir.fth Sun Sep 12 21:55:16 2010 (r1953)
+++ ofw/fs/ext2fs/dir.fth Mon Sep 13 08:34:04 2010 (r1954)
@@ -190,7 +190,10 @@
\ Delete the currently selected inode. Does not affect the directory entry, if any.
: idelete ( -- )
- delete-blocks
+ \ Short symlinks hold no blocks, but have a string in the direct block list,
+ \ so we must not interpret that string as a block list.
+ #blks-held if delete-blocks then
+
\ clear #blks-held, link-count, etc.
0 +i /inode 6 /l* /string erase
Modified: ofw/fs/ext2fs/methods.fth
==============================================================================
--- ofw/fs/ext2fs/methods.fth Sun Sep 12 21:55:16 2010 (r1953)
+++ ofw/fs/ext2fs/methods.fth Mon Sep 13 08:34:04 2010 (r1954)
@@ -30,7 +30,7 @@
0 instance value renaming?
: $delete ( name$ -- error? )
- $find-file if true exit then ( )
+ $resolve-path if true exit then ( )
\ It's okay to delete a directory if it is a rename, because a
\ hardlinked copy has just been made