Files
sablink-distro/sys-fs/evms/files/2.5.5/ntfs_unmkfs.patch
T
2009-05-19 19:43:18 +02:00

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",