Lines Matching refs:p_chain

146 int exfat_free_cluster(struct inode *inode, struct exfat_chain *p_chain)  in exfat_free_cluster()  argument
155 if (p_chain->dir == EXFAT_FREE_CLUSTER || in exfat_free_cluster()
156 p_chain->dir == EXFAT_EOF_CLUSTER || in exfat_free_cluster()
157 p_chain->dir < EXFAT_FIRST_CLUSTER) in exfat_free_cluster()
161 if (p_chain->size == 0) in exfat_free_cluster()
165 if (!is_valid_cluster(sbi, p_chain->dir)) { in exfat_free_cluster()
166 exfat_err(sb, "invalid start cluster (%u)", p_chain->dir); in exfat_free_cluster()
170 clu = p_chain->dir; in exfat_free_cluster()
175 if (p_chain->flags == ALLOC_NO_FAT_CHAIN) { in exfat_free_cluster()
176 unsigned int last_cluster = p_chain->dir + p_chain->size - 1; in exfat_free_cluster()
194 } while (num_clusters < p_chain->size); in exfat_free_cluster()
227 int exfat_find_last_cluster(struct super_block *sb, struct exfat_chain *p_chain, in exfat_find_last_cluster() argument
233 next = p_chain->dir; in exfat_find_last_cluster()
234 if (p_chain->flags == ALLOC_NO_FAT_CHAIN) { in exfat_find_last_cluster()
235 *ret_clu = next + p_chain->size - 1; in exfat_find_last_cluster()
246 if (p_chain->size != count) { in exfat_find_last_cluster()
249 p_chain->size, count); in exfat_find_last_cluster()
305 struct exfat_chain *p_chain, bool sync_bmap) in exfat_alloc_cluster() argument
325 hint_clu = p_chain->dir; in exfat_alloc_cluster()
344 if (p_chain->flags == ALLOC_NO_FAT_CHAIN) { in exfat_alloc_cluster()
345 if (exfat_chain_cont_cluster(sb, p_chain->dir, in exfat_alloc_cluster()
348 p_chain->flags = ALLOC_FAT_CHAIN; in exfat_alloc_cluster()
352 p_chain->dir = EXFAT_EOF_CLUSTER; in exfat_alloc_cluster()
357 p_chain->flags == ALLOC_NO_FAT_CHAIN) { in exfat_alloc_cluster()
358 if (exfat_chain_cont_cluster(sb, p_chain->dir, in exfat_alloc_cluster()
363 p_chain->flags = ALLOC_FAT_CHAIN; in exfat_alloc_cluster()
375 if (p_chain->flags == ALLOC_FAT_CHAIN) { in exfat_alloc_cluster()
382 if (p_chain->dir == EXFAT_EOF_CLUSTER) { in exfat_alloc_cluster()
383 p_chain->dir = new_clu; in exfat_alloc_cluster()
384 } else if (p_chain->flags == ALLOC_FAT_CHAIN) { in exfat_alloc_cluster()
396 p_chain->size += num_clusters; in exfat_alloc_cluster()
404 if (p_chain->flags == ALLOC_NO_FAT_CHAIN) { in exfat_alloc_cluster()
405 if (exfat_chain_cont_cluster(sb, p_chain->dir, in exfat_alloc_cluster()
410 p_chain->flags = ALLOC_FAT_CHAIN; in exfat_alloc_cluster()
416 exfat_free_cluster(inode, p_chain); in exfat_alloc_cluster()
421 struct exfat_chain *p_chain, unsigned int *ret_count) in exfat_count_num_clusters() argument
427 if (!p_chain->dir || p_chain->dir == EXFAT_EOF_CLUSTER) { in exfat_count_num_clusters()
432 if (p_chain->flags == ALLOC_NO_FAT_CHAIN) { in exfat_count_num_clusters()
433 *ret_count = p_chain->size; in exfat_count_num_clusters()
437 clu = p_chain->dir; in exfat_count_num_clusters()