lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 14 Mar 2012 10:17:37 -0400 From: Zach Brown <zab@...bo.net> To: Ted Ts'o <tytso@....edu>, Yongqiang Yang <xiaoqiangnk@...il.com>, Phillip Susi <phillsusi@...il.com>, Andreas Dilger <adilger@...mcloud.com>, Lukas Czerner <lczerner@...hat.com>, Jacek Luczak <difrost.kernel@...il.com>, "linux-ext4@...r.kernel.org" <linux-ext4@...r.kernel.org>, linux-fsdevel <linux-fsdevel@...r.kernel.org>, LKML <linux-kernel@...r.kernel.org>, "linux-btrfs@...r.kernel.org" <linux-btrfs@...r.kernel.org> Subject: Re: getdents - ext4 vs btrfs performance > We could do this if we have two b-trees, one indexed by filename and > one indexed by inode number, which is what JFS (and I believe btrfs) > does. Typically the inode number of the destination inode isn't used to index entries for a readdir tree because of (wait for it) hard links. You end up right back where you started with multiple entries per key. A painful solution is to have the key in the readdir tree allocated by the tree itself -- count key populations in subtrees per child pointer and use that to find free keys. You still have the problem of correlating entry keys and the location of inodes, but at least now you have a structure to navigate to try and do that. You can also trivially re-use freed keys and have densely packed readdir keys that won't break 32bit f_pos so quickly. btrfs just punts and has an incrementing 64bit counter per directory that determines a new entry's position in readdir. Accompanied by the obligatory "will be smarter some day" comment :). - z -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists