• Toshiyuki Okajima's avatar
    ext4: fix dx_map_entry to support 256k directory blocks · 9aee2286
    Toshiyuki Okajima authored
    The dx_map_entry structure doesn't support over 64KB block size by
    current usage of its member("offs"). Because "offs" treats an offset
    of copies of the ext4_dir_entry_2 structure as is. This member size is
    16 bits. But real offset for over 64KB(256KB) block size needs 18
    bits. However, real offset keeps 4 byte boundary, so lower 2 bits is
    not used.
    
    Therefore, we do the following to fix this limitation:
    For "store": 
    	we divide the real offset by 4 and then store this result to "offs" 
    	member.
    For "use":
    	we multiply "offs" member by 4 and then use this result 
    	as real offset.
    Signed-off-by: default avatarToshiyuki Okajima <toshi.okajima@jp.fujitsu.com>
    Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
    9aee2286
namei.c 69.2 KB