Lines Matching refs:vol

62 static errno_t ntfs_cluster_free_from_rl_nolock(ntfs_volume *vol,
68 * @vol: mounted ntfs volume on which to allocate the clusters
78 * @vol. @zone is either DATA_ZONE for allocation of normal clusters or
142 errno_t ntfs_cluster_alloc(ntfs_volume *vol, const VCN start_vcn,
165 if (!vol)
166 panic("%s(): !vol\n", __FUNCTION__);
167 lcnbmp_ni = vol->lcnbmp_ni;
190 lck_rw_lock_exclusive(&vol->lcnbmp_lock);
193 ntfs_error(vol->mp, "Failed to get vnode for $Bitmap.");
194 lck_rw_unlock_exclusive(&vol->lcnbmp_lock);
219 zone_start = vol->data1_zone_pos;
221 zone_start = vol->mft_zone_pos;
229 } else if (zone == DATA_ZONE && zone_start >= vol->mft_zone_start &&
230 zone_start < vol->mft_zone_end) {
231 zone_start = vol->mft_zone_end;
237 } else if (zone == MFT_ZONE && (zone_start < vol->mft_zone_start ||
238 zone_start >= vol->mft_zone_end)) {
239 zone_start = vol->mft_lcn;
240 if (!vol->mft_zone_end)
249 zone_end = vol->mft_zone_end;
254 if (zone_start >= vol->mft_zone_end) {
255 zone_end = vol->nr_clusters;
258 zone_end = vol->mft_zone_start;
305 ntfs_error(vol->mp, "Failed to map page.");
359 ntfs_error(vol->mp, "Failed to "
379 vol->nr_free_clusters--;
380 if (vol->nr_free_clusters < 0)
381 vol->nr_free_clusters = 0;
453 "vol->mft_zone_pos "
456 vol->mft_zone_pos);
457 if (tc >= vol->mft_zone_end) {
458 vol->mft_zone_pos =
459 vol->mft_lcn;
460 if (!vol->mft_zone_end)
461 vol->mft_zone_pos = 0;
463 vol->mft_zone_pos ||
464 tc > vol->mft_zone_pos)
465 && tc >= vol->mft_lcn)
466 vol->mft_zone_pos = tc;
468 "vol->mft_zone_pos "
471 vol->mft_zone_pos);
475 "vol->data1_zone_pos "
478 vol->data1_zone_pos);
479 if (tc >= vol->nr_clusters)
480 vol->data1_zone_pos =
481 vol->mft_zone_end;
483 vol->data1_zone_pos ||
484 tc > vol->data1_zone_pos)
485 && tc >= vol->mft_zone_end)
486 vol->data1_zone_pos = tc;
488 "vol->data1_zone_pos "
491 vol->data1_zone_pos);
495 "vol->data2_zone_pos "
498 vol->data2_zone_pos);
499 if (tc >= vol->mft_zone_start)
500 vol->data2_zone_pos = 0;
502 vol->data2_zone_pos ||
503 tc > vol->data2_zone_pos)
504 vol->data2_zone_pos = tc;
506 "vol->data2_zone_pos "
509 vol->data2_zone_pos);
545 zone_start = vol->mft_zone_start;
548 zone_start = vol->mft_zone_end;
588 "vol->mft_zone_pos "
591 vol->mft_zone_pos);
594 if (tc >= vol->mft_zone_end) {
595 vol->mft_zone_pos =
596 vol->mft_lcn;
597 if (!vol->mft_zone_end)
598 vol->mft_zone_pos = 0;
600 vol->mft_zone_pos ||
601 tc > vol->mft_zone_pos)
602 && tc >= vol->mft_lcn)
603 vol->mft_zone_pos = tc;
605 "vol->mft_zone_pos "
608 vol->mft_zone_pos);
613 vol->data1_zone_pos;
614 zone_end = vol->nr_clusters;
615 if (zone_start == vol->mft_zone_end)
618 vol->data1_zone_pos = zone_start =
619 vol->mft_zone_end;
631 "vol->data1_zone_pos "
634 vol->data1_zone_pos);
637 if (tc >= vol->nr_clusters)
638 vol->data1_zone_pos =
639 vol->mft_zone_end;
641 vol->data1_zone_pos ||
642 tc > vol->data1_zone_pos)
643 && tc >= vol->mft_zone_end)
644 vol->data1_zone_pos = tc;
646 "vol->data1_zone_pos "
649 vol->data1_zone_pos);
654 vol->data2_zone_pos;
655 zone_end = vol->mft_zone_start;
659 vol->data2_zone_pos = zone_start =
672 "vol->data2_zone_pos "
675 vol->data2_zone_pos);
678 if (tc >= vol->mft_zone_start)
679 vol->data2_zone_pos = 0;
681 vol->data2_zone_pos ||
682 tc > vol->data2_zone_pos)
683 vol->data2_zone_pos = tc;
685 "vol->data2_zone_pos "
688 vol->data2_zone_pos);
718 mft_zone_size = vol->mft_zone_end - vol->mft_zone_start;
719 ntfs_debug("vol->mft_zone_start 0x%llx, vol->mft_zone_end "
721 (unsigned long long)vol->mft_zone_start,
722 (unsigned long long)vol->mft_zone_end,
731 zone_end = vol->mft_zone_end;
734 vol->mft_zone_end = vol->mft_zone_start + mft_zone_size;
736 vol->data2_zone_pos = vol->mft_zone_start =
737 vol->mft_zone_end = 0;
738 if (vol->mft_zone_pos >= vol->mft_zone_end) {
739 vol->mft_zone_pos = vol->mft_lcn;
740 if (!vol->mft_zone_end)
741 vol->mft_zone_pos = 0;
744 vol->data1_zone_pos = vol->mft_zone_end;
749 "vol->mft_zone_start 0x%llx, "
750 "vol->mft_zone_end 0x%llx, "
751 "vol->mft_zone_pos 0x%llx, search_zone 2, "
753 "zone_end 0x%llx, vol->data1_zone_pos 0x%llx, "
756 (unsigned long long)vol->mft_zone_start,
757 (unsigned long long)vol->mft_zone_end,
758 (unsigned long long)vol->mft_zone_pos,
761 (unsigned long long)vol->data1_zone_pos);
788 vnode_t dev_vn = vol->dev_vn;
790 vol->cluster_size_shift -
791 vol->sector_size_shift;
825 lck_rw_unlock_exclusive(&vol->lcnbmp_lock);
834 ntfs_error(vol->mp, "Failed to allocate clusters, aborting (error "
848 err2 = ntfs_cluster_free_from_rl_nolock(vol, rl, 0, -1, NULL);
850 ntfs_error(vol->mp, "Failed to rollback (error %d). "
853 NVolSetErrors(vol);
859 "0x%llx.", (long long)vol->data1_zone_pos);
862 lck_rw_unlock_exclusive(&vol->lcnbmp_lock);
868 * @vol: mounted ntfs volume on which to free the clusters
875 * on the volume @vol. If @nr_freed is not NULL, *@nr_freed is set to the
900 static errno_t ntfs_cluster_free_from_rl_nolock(ntfs_volume *vol,
905 ntfs_inode *lcnbmp_ni = vol->lcnbmp_ni;
924 ntfs_error(vol->mp, "First runlist element has invalid lcn, "
939 ntfs_error(vol->mp, "Failed to clear first run "
945 vol->nr_free_clusters += to_free;
946 if (vol->nr_free_clusters > vol->nr_clusters)
947 vol->nr_free_clusters = vol->nr_clusters;
959 ntfs_error(vol->mp, "Runlist element has invalid lcn "
964 NVolSetErrors(vol);
975 ntfs_warning(vol->mp, "Failed to free "
979 NVolSetErrors(vol);
981 vol->nr_free_clusters += to_free;
982 if (vol->nr_free_clusters > vol->nr_clusters)
983 vol->nr_free_clusters =
984 vol->nr_clusters;
1004 * @vol: mounted ntfs volume on which to free the clusters
1011 * on the volume @vol. If @nr_freed is not NULL, *@nr_freed is set to the
1034 errno_t ntfs_cluster_free_from_rl(ntfs_volume *vol, ntfs_rl_element *rl,
1041 lcnbmp_ni = vol->lcnbmp_ni;
1043 lck_rw_lock_exclusive(&vol->lcnbmp_lock);
1047 err = ntfs_cluster_free_from_rl_nolock(vol, rl, start_vcn,
1051 lck_rw_unlock_exclusive(&vol->lcnbmp_lock);
1054 lck_rw_unlock_exclusive(&vol->lcnbmp_lock);
1055 ntfs_error(vol->mp, "Failed to get vnode for $Bitmap.");
1130 ntfs_volume *vol;
1135 vol = ni->vol;
1136 lcnbmp_ni = vol->lcnbmp_ni;
1149 ntfs_error(vol->mp, "Failed to find first runlist "
1155 ntfs_error(vol->mp, "First runlist element has "
1172 ntfs_error(vol->mp, "Failed to clear first run "
1179 vol->nr_free_clusters -= to_free;
1180 if (vol->nr_free_clusters < 0)
1181 vol->nr_free_clusters = 0;
1183 vol->nr_free_clusters += to_free;
1184 if (vol->nr_free_clusters > vol->nr_clusters)
1185 vol->nr_free_clusters = vol->nr_clusters;
1221 ntfs_error(vol->mp, "Failed to map "
1230 ntfs_error(vol->mp, "Runlist element "
1249 ntfs_error(vol->mp, "Failed to clear "
1256 vol->nr_free_clusters -= to_free;
1257 if (vol->nr_free_clusters < 0)
1258 vol->nr_free_clusters = 0;
1260 vol->nr_free_clusters += to_free;
1261 if (vol->nr_free_clusters > vol->nr_clusters)
1262 vol->nr_free_clusters =
1263 vol->nr_clusters;
1293 ntfs_error(vol->mp, "Failed to rollback (error %d). Leaving "
1296 NVolSetErrors(vol);
1298 ntfs_error(vol->mp, "Aborting (error %d).", err);
1367 ntfs_volume *vol;
1378 vol = ni->vol;
1379 lcnbmp_ni = vol->lcnbmp_ni;
1381 lck_rw_lock_exclusive(&vol->lcnbmp_lock);
1389 lck_rw_unlock_exclusive(&vol->lcnbmp_lock);
1392 lck_rw_unlock_exclusive(&vol->lcnbmp_lock);
1393 ntfs_error(vol->mp, "Failed to get vnode for $Bitmap.");