34 lines
1.6 KiB
Diff
34 lines
1.6 KiB
Diff
This patch fixes a bug in the NTFS unmkfs. The offsets for the superblocks
|
|
were calculated incorrectly by using the filesystem size rather than using
|
|
the volume size. The result is that sometimes the superblocks didn't get
|
|
wiped out, leaving the NTFS file system still on the volume.
|
|
|
|
--- evms-2.5.5/plugins/ntfs/utils.c 2006-02-24 10:36:54.000000000 -0600
|
|
+++ evms-2.5.5-fix/plugins/ntfs/utils.c 2006-05-04 16:47:26.243120000 -0500
|
|
@@ -313,7 +313,6 @@
|
|
int clear_ntfs_boot_sectors(logical_volume_t * ev)
|
|
{
|
|
int rc = 0;
|
|
- private_data_t * pd = (private_data_t *) ev->private_data;
|
|
int fd;
|
|
void * block;
|
|
int32_t bytes_written;
|
|
@@ -346,7 +345,7 @@
|
|
}
|
|
|
|
/* Wipe out the NT4+ backup boot sector. */
|
|
- bytes_written = EngFncs->write_volume(ev, fd, block, NTFS_BLOCK_SIZE, (pd->fs_size << EVMS_VSECTOR_SIZE_SHIFT) - NTFS_BLOCK_SIZE);
|
|
+ bytes_written = EngFncs->write_volume(ev, fd, block, NTFS_BLOCK_SIZE, (ev->vol_size << EVMS_VSECTOR_SIZE_SHIFT) - NTFS_BLOCK_SIZE);
|
|
if (bytes_written != NTFS_BLOCK_SIZE) {
|
|
LOG_WARNING("Failed to clear the primary boot sector on volume %s. "
|
|
"Only %d bytes were written.\n",
|
|
@@ -355,7 +354,7 @@
|
|
}
|
|
|
|
/* Wipe out the NT3.51- backup boot sector. */
|
|
- bytes_written = EngFncs->write_volume(ev, fd, block, NTFS_BLOCK_SIZE, (pd->fs_size << (EVMS_VSECTOR_SIZE_SHIFT - 1)));
|
|
+ bytes_written = EngFncs->write_volume(ev, fd, block, NTFS_BLOCK_SIZE, (ev->vol_size << (EVMS_VSECTOR_SIZE_SHIFT - 1)));
|
|
if (bytes_written != NTFS_BLOCK_SIZE) {
|
|
LOG_WARNING("Failed to clear the primary boot sector on volume %s. "
|
|
"Only %d bytes were written.\n",
|