summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/lomount.c
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2007-04-25 12:26:16 +0000
committerPascal Rigaux <pixel@mandriva.com>2007-04-25 12:26:16 +0000
commit126777bc019a54afb4ec51299f2cf9d2841698aa (patch)
tree97f76e571902ead55ba138f1156a4b4f00b9b779 /mdk-stage1/lomount.c
parentf1f67448efc714873378dfeb8279fae68054a90a (diff)
downloaddrakx-126777bc019a54afb4ec51299f2cf9d2841698aa.tar
drakx-126777bc019a54afb4ec51299f2cf9d2841698aa.tar.gz
drakx-126777bc019a54afb4ec51299f2cf9d2841698aa.tar.bz2
drakx-126777bc019a54afb4ec51299f2cf9d2841698aa.tar.xz
drakx-126777bc019a54afb4ec51299f2cf9d2841698aa.zip
re-sync after the big svn loss
Diffstat (limited to 'mdk-stage1/lomount.c')
-rw-r--r--mdk-stage1/lomount.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/mdk-stage1/lomount.c b/mdk-stage1/lomount.c
index e1142e4dd..2f80ec71c 100644
--- a/mdk-stage1/lomount.c
+++ b/mdk-stage1/lomount.c
@@ -60,7 +60,7 @@ struct loop_info
#define LOOP_GET_STATUS 0x4C03
int
-set_loop (const char *device, const char *file, int gz)
+set_loop (const char *device, const char *file)
{
struct loop_info loopinfo;
int fd, ffd, mode;
@@ -79,12 +79,6 @@ set_loop (const char *device, const char *file, int gz)
strncpy(loopinfo.lo_name, file, LO_NAME_SIZE);
loopinfo.lo_name[LO_NAME_SIZE - 1] = 0;
loopinfo.lo_offset = 0;
- if (gz) {
- my_insmod("cryptoloop", ANY_DRIVER_TYPE, NULL, 1);
- my_insmod("zlib_inflate", ANY_DRIVER_TYPE, NULL, 1);
- my_insmod("gzloop", ANY_DRIVER_TYPE, NULL, 1);
- loopinfo.lo_encrypt_type = 13; /* LO_CRYPT_GZ */
- }
#ifdef MCL_FUTURE
/*
@@ -162,7 +156,7 @@ del_loop(char * loopdev)
}
int
-lomount(char *loopfile, char *where, char **dev, int gz)
+lomount(char *loopfile, char *where, char **dev, int compressed)
{
long int flag;
@@ -172,6 +166,9 @@ lomount(char *loopfile, char *where, char **dev, int gz)
flag |= MS_RDONLY;
my_insmod("loop", ANY_DRIVER_TYPE, "max_loop=256", 1);
+ if (compressed) {
+ my_insmod("squashfs", ANY_DRIVER_TYPE, NULL, 1);
+ }
if (!(loopdev = find_free_loop())) {
log_message("could not find a free loop");
@@ -180,12 +177,12 @@ lomount(char *loopfile, char *where, char **dev, int gz)
if (dev)
*dev = loopdev;
- if (set_loop(loopdev, loopfile, gz)) {
+ if (set_loop(loopdev, loopfile)) {
log_message("set_loop failed on %s (%s)", loopdev, strerror(errno));
return 1;
}
- if (my_mount(loopdev, where, "iso9660", 0)) {
+ if (my_mount(loopdev, where, compressed ? "squashfs" : "iso9660", 0)) {
del_loop(loopdev);
return 1;
}