diff --git a/include/ntfs-3g/inode.h b/include/ntfs-3g/inode.h index 1dba1737..7867d235 100644 --- a/include/ntfs-3g/inode.h +++ b/include/ntfs-3g/inode.h @@ -149,6 +149,8 @@ struct _ntfs_inode { time_t last_access_time; }; +extern ntfs_inode *ntfs_inode_base(ntfs_inode *ni); + extern ntfs_inode *ntfs_inode_allocate(ntfs_volume *vol); extern ntfs_inode *ntfs_inode_open(ntfs_volume *vol, const MFT_REF mref); diff --git a/libntfs-3g/inode.c b/libntfs-3g/inode.c index 2cad21df..c4cb0c59 100644 --- a/libntfs-3g/inode.c +++ b/libntfs-3g/inode.c @@ -51,6 +51,13 @@ #include "logging.h" #include "misc.h" +ntfs_inode *ntfs_inode_base(ntfs_inode *ni) +{ + if (ni->nr_extents == -1) + return ni->base_ni; + return ni; +} + /** * ntfs_inode_mark_dirty - set the inode (and its base inode if it exists) dirty * @ni: ntfs inode to set dirty