btrfs: restore inode creation before xattr setting
According to the tree checker, "all xattrs with a given objectid follow the inode with that objectid in the tree" is an invariant. This was broken by the recent change "btrfs: move common inode creation code into btrfs_create_new_inode()", which moved acl creation and property inheritance (stored in xattrs) to before inode insertion into the tree. As a result, under certain timings, the xattrs could be written to the tree before the inode, causing the tree checker to report violation of the invariant. Move property inheritance and acl creation back to their old ordering after the inode insertion. Suggested-by: NOmar Sandoval <osandov@osandov.com> Reported-by: NNaohiro Aota <naohiro.aota@wdc.com> Signed-off-by: NSweet Tea Dorminy <sweettea-kernel@dorminy.me> Signed-off-by: NDavid Sterba <dsterba@suse.com>
Showing
想要评论请 注册 或 登录