Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 323253
Collapse All | Expand All

(-)lilo-22.8-orig/geometry.c (-29 / +2 lines)
Lines 901-942 void geo_get(GEOMETRY *geo,int device,in Link Here
901
	    DEVICE dev;
901
	    DEVICE dev;
902
	    struct dm_task *dmt;
902
	    struct dm_task *dmt;
903
	    void *next = NULL;
903
	    void *next = NULL;
904
	    char dmdev[PATH_MAX+1];
905
	    char buf[PATH_MAX+1];
904
	    char buf[PATH_MAX+1];
906
	    char *slash;
907
	    int result;
905
	    int result;
908
906
909
	    dev_open(&dev, device, -1);
907
	    dev_open(&dev, device, -1);
910
	    strncpy(dmdev, dev.name, PATH_MAX);
911
	    dmdev[PATH_MAX] = 0;
912
	    do {
913
		memset(buf, 0, PATH_MAX + 1);
914
		if ((result = readlink(dmdev, buf, PATH_MAX)) < 0 && errno != EINVAL)
915
		    die("device-mapper: readlink(\"%s\") failed with: %s",buf,
916
			strerror(errno));
917
		if (result >= 0) {
918
		    if (buf[0] != '/' && (slash = strrchr(dmdev, '/')) != NULL)
919
			slash++;
920
		    else
921
			slash = dmdev;
922
		    strncpy(slash, buf, PATH_MAX - (slash-dmdev));
923
		}
924
		if (realpath(dmdev, buf) == NULL)
925
		    die("device-mapper: realpath(\"%s\") failed with: %s",dmdev,
926
			strerror(errno));
927
		strncpy(dmdev, buf, PATH_MAX);
928
	    } while (result >= 0);
929
	    dmdev[PATH_MAX] = 0;
930
908
931
	    if (!(dmt = dm_task_create(DM_DEVICE_TABLE)))
909
	    if (!(dmt = dm_task_create(DM_DEVICE_TABLE)))
932
		die("device-mapper: dm_task_create(DM_DEVICE_TABLE) failed");
910
		die("device-mapper: dm_task_create(DM_DEVICE_TABLE) failed");
933
	    slash = strrchr(dmdev, '/');
911
	    if (!dm_task_set_name(dmt, dev.name))
934
		if (slash)
912
		die("device-mapper: dm_task_set_name(\"%s\") failed",dev.name);
935
	    slash++;
936
		else
937
	    slash = dmdev;
938
	    if (!dm_task_set_name(dmt, slash))
939
		die("device-mapper: dm_task_set_name(\"%s\") failed",dmdev);
940
	    if (!dm_task_run(dmt))
913
	    if (!dm_task_run(dmt))
941
		die("device-mapper: dm_task_run(DM_DEVICE_TABLE) failed");
914
		die("device-mapper: dm_task_run(DM_DEVICE_TABLE) failed");
942
915

Return to bug 323253