Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Signed-off-by: Josef 'Jeff' Sipek <jsipek@cs.sunysb.edu>
unionfs_read_lock(sb);
if (!unionfs_d_revalidate(dentry, NULL) && !d_deleted(dentry)) {
err = -ESTALE;
- goto out;
+ goto out_nofree;
}
sbgen = atomic_read(&UNIONFS_SB(sb)->generation);
}
out:
+ if (err)
+ kfree(UNIONFS_F(file)->lower_files);
+out_nofree:
unionfs_unlock_dentry(dentry);
unionfs_read_unlock(dentry->d_sb);
return err;
file->private_data = kzalloc(sizeof(struct unionfs_file_info), GFP_KERNEL);
if (!UNIONFS_F(file)) {
err = -ENOMEM;
- goto out;
+ goto out_nofree;
}
fbstart(file) = -1;
fbend(file) = -1;
kfree(UNIONFS_F(file)->lower_files);
kfree(UNIONFS_F(file));
}
-
+out_nofree:
return err;
}