[syslinux:pathbased] installer: fix use of FIEMAP

syslinux-bot for H. Peter Anvin hpa at linux.intel.com
Tue Jun 15 17:27:06 PDT 2010


Commit-ID:  76d5e47c0ddec4f5d792d8753056ab46e5fc9e8c
Gitweb:     http://syslinux.zytor.com/commit/76d5e47c0ddec4f5d792d8753056ab46e5fc9e8c
Author:     H. Peter Anvin <hpa at linux.intel.com>
AuthorDate: Tue, 15 Jun 2010 17:24:32 -0700
Committer:  H. Peter Anvin <hpa at linux.intel.com>
CommitDate: Tue, 15 Jun 2010 17:24:32 -0700

installer: fix use of FIEMAP

Correct the implementation of block mapping using FIEMAP (as opposed
to FIBMAP).

Signed-off-by: H. Peter Anvin <hpa at linux.intel.com>


---
 libinstaller/syslxcom.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libinstaller/syslxcom.c b/libinstaller/syslxcom.c
index 013b69a..85b3f6e 100644
--- a/libinstaller/syslxcom.c
+++ b/libinstaller/syslxcom.c
@@ -209,7 +209,7 @@ static int sectmap_fie(int fd, sector_t *sectors, int nsectors)
     fm->fm_flags        = FIEMAP_FLAG_SYNC;
     fm->fm_extent_count = nsectors;
 
-    if (ioctl(fd, FS_IOC_FIEMAP, &fm))
+    if (ioctl(fd, FS_IOC_FIEMAP, fm))
 	return -1;
 
     memset(sectors, 0, nsectors * sizeof *sectors);
@@ -225,7 +225,7 @@ static int sectmap_fie(int fd, sector_t *sectors, int nsectors)
 	if (fe->fe_flags & FIEMAP_EXTENT_LAST) {
 	    /* If this is the *final* extent, pad the length */
 	    fe->fe_length = (fe->fe_length + SECTOR_SIZE - 1)
-		& (SECTOR_SIZE - 1);
+		& ~(SECTOR_SIZE - 1);
 	}
 
 	if ((fe->fe_logical | fe->fe_physical| fe->fe_length) &



More information about the Syslinux-commits mailing list