Re: [PATCH][CFT] (updated) ext2 directories in pagecache

Albert Cranford
2001-05-02T03:02:31Z

[-- Attachment #1: Type: text/plain, Size: 1348 bytes --]

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 majordomo@vger.kernel.org
> 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
ac9410@bellsouth.net

[-- Attachment #2: c --]
[-- Type: text/plain, Size: 2982 bytes --]

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) = ?