Commit f04332b5 authored by Anton Altaparmakov's avatar Anton Altaparmakov

NTFS: - Add fs/ntfs/lcnalloc.h::ntfs_cluster_free_from_rl() which is a static

        inline wrapper for ntfs_cluster_free_from_rl_nolock() which takes the
        cluster bitmap lock for the duration of the call.
      - Make fs/ntfs/lcnalloc.c::ntfs_cluster_free_from_rl_nolock() not
        static and add a declaration for it to lcnalloc.h.
Signed-off-by: default avatarAnton Altaparmakov <aia21@cantab.net>
parent 16a60b36
......@@ -34,6 +34,11 @@ ToDo/Notes:
- Add fs/ntfs/runlist.[hc]::ntfs_get_nr_significant_bytes(),
ntfs_get_size_for_mapping_pairs(), ntfs_write_significant_bytes(),
and ntfs_mapping_pairs_build(), adapted from libntfs.
- Make fs/ntfs/lcnalloc.c::ntfs_cluster_free_from_rl_nolock() not
static, add a declaration for it to lcnalloc.h.
- Add fs/ntfs/lcnalloc.h::ntfs_cluster_free_from_rl() which is a static
inline wrapper for ntfs_cluster_free_from_rl_nolock() which takes the
cluster bitmap lock for the duration of the call.
2.1.19 - Many cleanups, improvements, and a minor bug fix.
......
......@@ -46,7 +46,7 @@
* Locking: - The volume lcn bitmap must be locked for writing on entry and is
* left locked on return.
*/
static int ntfs_cluster_free_from_rl_nolock(ntfs_volume *vol,
int ntfs_cluster_free_from_rl_nolock(ntfs_volume *vol,
const runlist_element *rl)
{
struct inode *lcnbmp_vi = vol->lcnbmp_ino;
......
......@@ -78,6 +78,34 @@ static inline s64 ntfs_cluster_free(struct inode *vi, const VCN start_vcn,
return __ntfs_cluster_free(vi, start_vcn, count, FALSE);
}
extern int ntfs_cluster_free_from_rl_nolock(ntfs_volume *vol,
const runlist_element *rl);
/**
* ntfs_cluster_free_from_rl - free clusters from runlist
* @vol: mounted ntfs volume on which to free the clusters
* @rl: runlist describing the clusters to free
*
* Free all the clusters described by the runlist @rl on the volume @vol. In
* the case of an error being returned, at least some of the clusters were not
* freed.
*
* Return 0 on success and -errno on error.
*
* Locking: This function takes the volume lcn bitmap lock for writing and
* modifies the bitmap contents.
*/
static inline int ntfs_cluster_free_from_rl(ntfs_volume *vol,
const runlist_element *rl)
{
int ret;
down_write(&vol->lcnbmp_lock);
ret = ntfs_cluster_free_from_rl_nolock(vol, rl);
up_write(&vol->lcnbmp_lock);
return ret;
}
#endif /* NTFS_RW */
#endif /* defined _LINUX_NTFS_LCNALLOC_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment