From 6523139d60df39ebcde2fabb5cf097aece984876 Mon Sep 17 00:00:00 2001 From: szaka Date: Mon, 19 Nov 2007 00:10:09 +0000 Subject: [PATCH] fix: ntfs_inode_sync_file_name() don't close root dir many times in error paths --- libntfs-3g/inode.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libntfs-3g/inode.c b/libntfs-3g/inode.c index c88a626e..5bb2c4e1 100644 --- a/libntfs-3g/inode.c +++ b/libntfs-3g/inode.c @@ -588,7 +588,8 @@ static int ntfs_inode_sync_file_name(ntfs_inode *ni) err = errno; ntfs_log_perror("Failed to get index ctx, inode %lld", (long long)index_ni->mft_no); - ntfs_inode_close(index_ni); + if (ni != index_ni && ntfs_inode_close(index_ni) && !err) + err = errno; continue; } if (ntfs_index_lookup(fn, sizeof(FILE_NAME_ATTR), ictx)) { @@ -601,7 +602,8 @@ static int ntfs_inode_sync_file_name(ntfs_inode *ni) ntfs_log_perror("Index lookup failed, inode %lld", (long long)index_ni->mft_no); ntfs_index_ctx_put(ictx); - ntfs_inode_close(index_ni); + if (ni != index_ni && ntfs_inode_close(index_ni) && !err) + err = errno; continue; } /* Update flags and file size. */