Hello Daniel, This combination against 2.4.4 won't allow directories to be moved. Ex: mv a b #fails with I/O error. See attached strace. But with ext2-dir-patch-S4 by itself, mv works as it should. Later, Albert Daniel Phillips wrote: > > > Patch is on ftp.math.psu.edu/pub/viro/ext2-dir-patch-S4.gz > > Here is my ext2 directory index as a patch against your patch: > > http://kernelnewbies.org/~phillips/htree/dx.pcache-2.4.4 > > Changes: > > - COMBSORT macro replaced by custom sort code > - Most #ifdef CONFIG_EXT2_INDEX's changed to if (<constant>) > > To do: > > - Split up the split code > - Finalize hash function > - Test/debug big endian > - Fall back to linear search if bad index detected > - Fail gracefully on random data > - Remove the tracing and test options > > To apply: > > cd source/tree > zcat ext2-dir-patch-S4.gz | patch -p1 > cat dx.pcache-2.4.4 | patch -p0 > > To create an indexed directory: > > mount /dev/hdxxx /test -o index > mkdir /test/foo > - > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to [EMAIL PROTECTED] > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- Albert Cranford Deerfield Beach FL USA [EMAIL PROTECTED]
execve("/bin/mv", ["mv", "a", "b"], [/* 47 vars */]) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40007000 mprotect(0x40000000, 21025, PROT_READ|PROT_WRITE|PROT_EXEC) = 0 mprotect(0x8048000, 52997, PROT_READ|PROT_WRITE|PROT_EXEC) = 0 stat("/etc/ld.so.cache", {st_mode=S_IFREG|0644, st_size=44476, ...}) = 0 open("/etc/ld.so.cache", O_RDONLY) = 3 mmap(NULL, 44476, PROT_READ, MAP_SHARED, 3, 0) = 0x40008000 close(3) = 0 stat("/etc/ld.so.preload", {st_mode=S_IFREG|0644, st_size=1, ...}) = 0 open("/etc/ld.so.preload", O_RDONLY) = 3 mmap(NULL, 2, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0x40013000 close(3) = 0 munmap(0x40013000, 2) = 0 open("/lib/libc.so.5", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000*\1\000"..., 4096) = 4096 mmap(NULL, 786432, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40013000 mmap(0x40013000, 555135, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x40013000 mmap(0x4009b000, 21344, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x87000) = 0x4009b000 mmap(0x400a1000, 204364, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x400a1000 close(3) = 0 mprotect(0x40013000, 555135, PROT_READ|PROT_WRITE|PROT_EXEC) = 0 munmap(0x40008000, 44476) = 0 mprotect(0x8048000, 52997, PROT_READ|PROT_EXEC) = 0 mprotect(0x40013000, 555135, PROT_READ|PROT_EXEC) = 0 mprotect(0x40000000, 21025, PROT_READ|PROT_EXEC) = 0 personality(PER_LINUX) = 0 geteuid() = 0 getuid() = 0 getgid() = 0 getegid() = 0 brk(0x80568bc) = 0x80568bc brk(0x8057000) = 0x8057000 geteuid() = 0 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0 stat("b", 0xbffff76c) = -1 ENOENT (No such file or directory) lstat("a", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat("b", 0x8056660) = -1 ENOENT (No such file or directory) rename("a", "b") = -1 EIO (Input/output error) write(2, "mv: ", 4mv: ) = 4 write(2, "cannot move `a\' to `b\'", 22cannot move `a' to `b') = 22 stat("/etc/locale/C/libc.cat", 0xbffff2f0) = -1 ENOENT (No such file or directory) stat("/usr/share/locale/C/libc.cat", 0xbffff2f0) = -1 ENOENT (No such file or directory) stat("/usr/share/locale/libc/C", 0xbffff2f0) = -1 ENOENT (No such file or directory) stat("/usr/share/locale/C/libc.cat", 0xbffff2f0) = -1 ENOENT (No such file or directory) stat("/usr/local/share/locale/C/libc.cat", 0xbffff2f0) = -1 ENOENT (No such file or directory) write(2, ": I/O error", 11: I/O error) = 11 write(2, "\n", 1 ) = 1 _exit(1) = ?