utsaslab / WineFS

WineFS (SOSP 21): a huge-page aware file system for persistent memory
34 stars 2 forks source link

Bugs in the extended attributes mechanism #24

Open paulwedeck opened 11 months ago

paulwedeck commented 11 months ago

Hello, I discovered multiple questionable to bugged code places in xattr.c:

Further, pmfs_new_data_blocks sets the huge_aligned_file flag even if this part of the inode is not part of them transaction. Therefore, crash states are possible where the overall operation succeeded but the flag (and therefore the implicit) attribute is not set and vice versa. While inspecting the code, I could only prove that it was necessary for the fallocate syscall to include the whole inode in the transaction. I assume that there are more places but I have not yet found them.