mount_image.c: Don't assume inode is resolved
authorEric Biggers <ebiggers3@gmail.com>
Thu, 20 Feb 2014 01:59:17 +0000 (19:59 -0600)
committerEric Biggers <ebiggers3@gmail.com>
Thu, 20 Feb 2014 02:01:22 +0000 (20:01 -0600)
The code should no longer assume that all streams have been resolved
before mounting, since now errors are issued when accessing files with
missing streams.

However this line still appeared to work correctly because FUSE seems to
always call getattr(), which results in stream resolution in
wim_pathname_to_stream(), before unlinking.

src/mount_image.c

index 7482ceb..d716546 100644 (file)
@@ -388,7 +388,7 @@ remove_dentry(struct wim_dentry *dentry,
        unsigned i;
 
        for (i = 0; i <= inode->i_num_ads; i++) {
-               lte = inode_stream_lte_resolved(inode, i);
+               lte = inode_stream_lte(inode, i, lookup_table);
                if (lte)
                        lte_decrement_refcnt(lte, lookup_table);
        }