btrfs: fix lost inode on log replay after mix of fsync, rename and inode eviction
[platform/kernel/linux-rpi.git] / fs / btrfs / tree-log.c
index 9fd0348..e6430ac 100644 (file)
@@ -6503,8 +6503,8 @@ void btrfs_log_new_name(struct btrfs_trans_handle *trans,
         * if this inode hasn't been logged and directory we're renaming it
         * from hasn't been logged, we don't need to log it
         */
-       if (inode->logged_trans < trans->transid &&
-           (!old_dir || old_dir->logged_trans < trans->transid))
+       if (!inode_logged(trans, inode) &&
+           (!old_dir || !inode_logged(trans, old_dir)))
                return;
 
        /*