Lines Matching defs:vol
185 * @vol: ntfs_volume to setup
188 * Parse the ntfs bootsector @bs and setup the ntfs volume @vol with the
193 int ntfs_boot_sector_parse(ntfs_volume *vol, const NTFS_BOOT_SECTOR *bs)
202 vol->sector_size = le16_to_cpu(bs->bpb.bytes_per_sector);
203 vol->sector_size_bits = ffs(vol->sector_size) - 1;
204 ntfs_log_debug("SectorSize = 0x%x\n", vol->sector_size);
205 ntfs_log_debug("SectorSizeBits = %u\n", vol->sector_size_bits);
228 if (vol->dev->d_ops->seek(vol->dev,
229 (sectors - 1) << vol->sector_size_bits,
237 vol->nr_clusters = sectors >> (ffs(sectors_per_cluster) - 1);
239 vol->mft_lcn = sle64_to_cpu(bs->mft_lcn);
240 vol->mftmirr_lcn = sle64_to_cpu(bs->mftmirr_lcn);
241 ntfs_log_debug("MFT LCN = %lld\n", (long long)vol->mft_lcn);
242 ntfs_log_debug("MFTMirr LCN = %lld\n", (long long)vol->mftmirr_lcn);
243 if ((vol->mft_lcn < 0 || vol->mft_lcn > vol->nr_clusters) ||
244 (vol->mftmirr_lcn < 0 || vol->mftmirr_lcn > vol->nr_clusters)) {
247 (long long)vol->mft_lcn, (long long)vol->mftmirr_lcn,
248 (long long)vol->nr_clusters);
252 vol->cluster_size = sectors_per_cluster * vol->sector_size;
253 if (vol->cluster_size & (vol->cluster_size - 1)) {
255 vol->cluster_size);
258 vol->cluster_size_bits = ffs(vol->cluster_size) - 1;
265 ntfs_log_debug("ClusterSize = 0x%x\n", (unsigned)vol->cluster_size);
266 ntfs_log_debug("ClusterSizeBits = %u\n", vol->cluster_size_bits);
275 vol->mft_record_size = 1 << -c;
277 vol->mft_record_size = c << vol->cluster_size_bits;
278 if (vol->mft_record_size & (vol->mft_record_size - 1)) {
280 vol->mft_record_size);
283 vol->mft_record_size_bits = ffs(vol->mft_record_size) - 1;
284 ntfs_log_debug("MftRecordSize = 0x%x\n", (unsigned)vol->mft_record_size);
285 ntfs_log_debug("MftRecordSizeBits = %u\n", vol->mft_record_size_bits);
290 vol->indx_record_size = 1 << -c;
292 vol->indx_record_size = c << vol->cluster_size_bits;
293 vol->indx_record_size_bits = ffs(vol->indx_record_size) - 1;
294 ntfs_log_debug("INDXRecordSize = 0x%x\n", (unsigned)vol->indx_record_size);
295 ntfs_log_debug("INDXRecordSizeBits = %u\n", vol->indx_record_size_bits);
304 if (vol->cluster_size <= 4 * vol->mft_record_size)
305 vol->mftmirr_size = 4;
307 vol->mftmirr_size = vol->cluster_size / vol->mft_record_size;