]> wimlib.net Git - wimlib/blobdiff - src/symlink.c
Make different threads use different FILE*'s
[wimlib] / src / symlink.c
index bed8fc3e06c7774934e54c1c05a42faebd6ed74e..b1c5b5d388b4703cf96c6b26d2af7d8dbdb00dbb 100644 (file)
@@ -163,7 +163,7 @@ out:
  * The dentry may be either "real" symlink or a junction point.
  */
 ssize_t inode_readlink(const struct inode *inode, char *buf, size_t buf_len,
-                      const WIMStruct *w)
+                      const WIMStruct *w, int read_resource_flags)
 {
        const struct lookup_table_entry *lte;
        int ret;
@@ -178,7 +178,7 @@ ssize_t inode_readlink(const struct inode *inode, char *buf, size_t buf_len,
                return -EIO;
 
        u8 res_buf[wim_resource_size(lte)];
-       ret = read_full_wim_resource(lte, res_buf);
+       ret = read_full_wim_resource(lte, res_buf, read_resource_flags);
        if (ret != 0)
                return -EIO;
        return get_symlink_name(res_buf, wim_resource_size(lte), buf,
@@ -248,9 +248,6 @@ int inode_set_symlink(struct inode *inode, const char *target,
        if (lte_ret)
                *lte_ret = lte;
        return 0;
-out_free_lte:
-       if (lte != existing_lte)
-               FREE(lte);
 out_free_symlink_buf:
        FREE(symlink_buf);
        return ret;