From 2b745a3542932eb815997fe573f9568ed8f694f1 Mon Sep 17 00:00:00 2001 From: "cantab.net!aia21" Date: Thu, 16 Sep 2004 09:29:58 +0000 Subject: [PATCH] Write out dirty extent inodes in ntfs_inode_close() when closing a base inode. (Logical change 1.557) --- libntfs/inode.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/libntfs/inode.c b/libntfs/inode.c index 1a91a2cf..f75eb131 100644 --- a/libntfs/inode.c +++ b/libntfs/inode.c @@ -217,11 +217,13 @@ int ntfs_inode_close(ntfs_inode *ni) } /* Is this a base inode with mapped extent inodes? */ if (ni->nr_extents > 0) { - int i; - - // FIXME: Handle dirty case for each extent inode! (AIA) - for (i = 0; i < ni->nr_extents; i++) - __ntfs_inode_release(ni->extent_nis[i]); + while (ni->nr_extents > 0) { + if (ntfs_inode_close(ni->extent_nis[0])) { + if (errno != EIO) + errno = EBUSY; + return -1; + } + } free(ni->extent_nis); } else if (ni->nr_extents == -1) { ntfs_inode **tmp_nis;