Lines Matching refs:p_chain
146 int exfat_free_cluster(struct inode *inode, struct exfat_chain *p_chain) in exfat_free_cluster() argument
154 if (p_chain->dir == EXFAT_FREE_CLUSTER || in exfat_free_cluster()
155 p_chain->dir == EXFAT_EOF_CLUSTER || in exfat_free_cluster()
156 p_chain->dir < EXFAT_FIRST_CLUSTER) in exfat_free_cluster()
160 if (p_chain->size == 0) in exfat_free_cluster()
164 if (!is_valid_cluster(sbi, p_chain->dir)) { in exfat_free_cluster()
165 exfat_err(sb, "invalid start cluster (%u)", p_chain->dir); in exfat_free_cluster()
169 clu = p_chain->dir; in exfat_free_cluster()
171 if (p_chain->flags == ALLOC_NO_FAT_CHAIN) { in exfat_free_cluster()
177 } while (num_clusters < p_chain->size); in exfat_free_cluster()
194 int exfat_find_last_cluster(struct super_block *sb, struct exfat_chain *p_chain, in exfat_find_last_cluster() argument
200 next = p_chain->dir; in exfat_find_last_cluster()
201 if (p_chain->flags == ALLOC_NO_FAT_CHAIN) { in exfat_find_last_cluster()
202 *ret_clu = next + p_chain->size - 1; in exfat_find_last_cluster()
213 if (p_chain->size != count) { in exfat_find_last_cluster()
216 p_chain->size, count); in exfat_find_last_cluster()
272 struct exfat_chain *p_chain) in exfat_alloc_cluster() argument
292 hint_clu = p_chain->dir; in exfat_alloc_cluster()
311 if (p_chain->flags == ALLOC_NO_FAT_CHAIN) { in exfat_alloc_cluster()
312 if (exfat_chain_cont_cluster(sb, p_chain->dir, in exfat_alloc_cluster()
315 p_chain->flags = ALLOC_FAT_CHAIN; in exfat_alloc_cluster()
319 p_chain->dir = EXFAT_EOF_CLUSTER; in exfat_alloc_cluster()
324 p_chain->flags == ALLOC_NO_FAT_CHAIN) { in exfat_alloc_cluster()
325 if (exfat_chain_cont_cluster(sb, p_chain->dir, in exfat_alloc_cluster()
330 p_chain->flags = ALLOC_FAT_CHAIN; in exfat_alloc_cluster()
342 if (p_chain->flags == ALLOC_FAT_CHAIN) { in exfat_alloc_cluster()
349 if (p_chain->dir == EXFAT_EOF_CLUSTER) { in exfat_alloc_cluster()
350 p_chain->dir = new_clu; in exfat_alloc_cluster()
351 } else if (p_chain->flags == ALLOC_FAT_CHAIN) { in exfat_alloc_cluster()
363 p_chain->size += num_clusters; in exfat_alloc_cluster()
371 if (p_chain->flags == ALLOC_NO_FAT_CHAIN) { in exfat_alloc_cluster()
372 if (exfat_chain_cont_cluster(sb, p_chain->dir, in exfat_alloc_cluster()
377 p_chain->flags = ALLOC_FAT_CHAIN; in exfat_alloc_cluster()
383 exfat_free_cluster(inode, p_chain); in exfat_alloc_cluster()
388 struct exfat_chain *p_chain, unsigned int *ret_count) in exfat_count_num_clusters() argument
394 if (!p_chain->dir || p_chain->dir == EXFAT_EOF_CLUSTER) { in exfat_count_num_clusters()
399 if (p_chain->flags == ALLOC_NO_FAT_CHAIN) { in exfat_count_num_clusters()
400 *ret_count = p_chain->size; in exfat_count_num_clusters()
404 clu = p_chain->dir; in exfat_count_num_clusters()