mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
exfat: add balloc parameter to exfat_map_cluster() for iomap support
In preparation for supporting the iomap infrastructure, we need to know whether a new cluster was allocated or not in exfat_map_cluster(). Add an optional 'bool *balloc' output parameter. When a new cluster is allocated, *balloc is set to true. Pass NULL from exfat_get_block() to preserve the existing behavior. Acked-by: Christoph Hellwig <hch@lst.de> Acked-by: "Darrick J. Wong" <djwong@kernel.org> Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
This commit is contained in:
parent
f07db38084
commit
3474416bb9
|
|
@ -124,7 +124,8 @@ void exfat_sync_inode(struct inode *inode)
|
|||
* *clu = (~0), if it's unable to allocate a new cluster
|
||||
*/
|
||||
static int exfat_map_cluster(struct inode *inode, unsigned int clu_offset,
|
||||
unsigned int *clu, unsigned int *count, int create)
|
||||
unsigned int *clu, unsigned int *count, int create,
|
||||
bool *balloc)
|
||||
{
|
||||
int ret;
|
||||
unsigned int last_clu;
|
||||
|
|
@ -229,6 +230,8 @@ static int exfat_map_cluster(struct inode *inode, unsigned int clu_offset,
|
|||
if (exfat_cluster_walk(sb, clu, num_to_be_allocated - 1, ei->flags))
|
||||
return -EIO;
|
||||
*count = 1;
|
||||
if (balloc)
|
||||
*balloc = true;
|
||||
}
|
||||
|
||||
/* hint information */
|
||||
|
|
@ -262,7 +265,7 @@ static int exfat_get_block(struct inode *inode, sector_t iblock,
|
|||
/* Is this block already allocated? */
|
||||
count = exfat_bytes_to_cluster_round_up(sbi, bh_result->b_size);
|
||||
err = exfat_map_cluster(inode, iblock >> sbi->sect_per_clus_bits,
|
||||
&cluster, &count, create);
|
||||
&cluster, &count, create, NULL);
|
||||
if (err) {
|
||||
if (err != -ENOSPC)
|
||||
exfat_fs_error_ratelimit(sb,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user