linux/fs/ubifs
Richard Weinberger 528e3d178f ubifs: Add full hash lookup support
UBIFS stores a 32bit hash of every file, for traditional lookups by name
this scheme is fine since UBIFS can first try to find the file by the
hash of the filename and upon collisions it can walk through all entries
with the same hash and do a string compare.
When filesnames are encrypted fscrypto will ask the filesystem for a
unique cookie, based on this cookie the filesystem has to be able to
locate the target file again. With 32bit hashes this is impossible
because the chance for collisions is very high. Do deal with that we
store a 32bit cookie directly in the UBIFS directory entry node such
that we get a 64bit cookie (32bit from filename hash and the dent
cookie). For a lookup by hash UBIFS finds the entry by the first 32bit
and then compares the dent cookie. If it does not match, it has to do a
linear search of the whole directory and compares all dent cookies until
the correct entry is found.

Signed-off-by: Richard Weinberger <richard@nod.at>
2016-12-12 23:07:38 +01:00
..
budget.c UBIFS: extend debug/message capabilities 2015-03-25 11:08:41 +02:00
commit.c UBIFS: extend debug/message capabilities 2015-03-25 11:08:41 +02:00
compress.c UBIFS: extend debug/message capabilities 2015-03-25 11:08:41 +02:00
crypto.c ubifs: Implement encrypt/decrypt for all IO 2016-12-12 23:07:38 +01:00
debug.c ubifs: Implement encrypted filenames 2016-12-12 23:07:38 +01:00
debug.h UBIFS: print less 2012-08-31 17:32:58 +03:00
dir.c ubifs: Add full hash lookup support 2016-12-12 23:07:38 +01:00
file.c ubifs: Add support for encrypted symlinks 2016-12-12 23:07:38 +01:00
find.c UBIFS: fix mounting problems after power cuts 2012-10-26 16:26:44 +03:00
gc.c ubifs: Remove some dead code 2016-12-12 23:06:28 +01:00
io.c ubifs: Use dirty_writeback_interval value for wbuf timer 2016-12-12 23:06:24 +01:00
ioctl.c ubifs: Add skeleton for fscrypto 2016-12-12 23:07:38 +01:00
journal.c ubifs: Add full hash lookup support 2016-12-12 23:07:38 +01:00
Kconfig ubifs: Add skeleton for fscrypto 2016-12-12 23:07:38 +01:00
key.h ubifs: Implement encrypted filenames 2016-12-12 23:07:38 +01:00
log.c UBIFS: extend debug/message capabilities 2015-03-25 11:08:41 +02:00
lprops.c UBIFS: improve function-level documentation 2016-10-02 22:55:02 +02:00
lpt_commit.c UBIFS: improve function-level documentation 2016-10-02 22:55:02 +02:00
lpt.c UBIFS: use kmemdup rather than duplicating its implementation 2015-10-03 20:03:14 +02:00
Makefile ubifs: Add skeleton for fscrypto 2016-12-12 23:07:38 +01:00
master.c UBIFS: extend debug/message capabilities 2015-03-25 11:08:41 +02:00
misc.c ubifs: Add logging functions for ubifs_msg, ubifs_err and ubifs_warn 2016-03-20 21:36:05 +01:00
misc.h fs/ubifs: remove unnecessary new_valid_dev check 2015-11-06 23:26:48 +01:00
orphan.c UBIFS: extend debug/message capabilities 2015-03-25 11:08:41 +02:00
recovery.c UBIFS: Delete unnecessary checks before the function call "iput" 2015-11-06 23:26:52 +01:00
replay.c ubifs: Implement encrypted filenames 2016-12-12 23:07:38 +01:00
sb.c lib/uuid.c: move generate_random_uuid() to uuid.c 2016-05-20 17:58:30 -07:00
scan.c UBIFS: extend debug/message capabilities 2015-03-25 11:08:41 +02:00
shrinker.c UBIFS: Remove incorrect assertion in shrink_tnc() 2014-06-02 11:28:24 +03:00
super.c ubifs: Add support for encrypted symlinks 2016-12-12 23:07:38 +01:00
tnc_commit.c ubifs: Fix assertion in layout_in_gaps() 2016-08-23 23:02:40 +02:00
tnc_misc.c UBIFS: extend debug/message capabilities 2015-03-25 11:08:41 +02:00
tnc.c ubifs: Add full hash lookup support 2016-12-12 23:07:38 +01:00
ubifs-media.h ubifs: Add full hash lookup support 2016-12-12 23:07:38 +01:00
ubifs.h ubifs: Add full hash lookup support 2016-12-12 23:07:38 +01:00
xattr.c ubifs: Implement encrypted filenames 2016-12-12 23:07:38 +01:00