43
43
const char *p, *p1;
45
45
const char *fsck_prog;
46
int rlen, status, existed = 1;
46
int len, status, existed = 1;
48
if (ap->flags & MOUNT_FLAG_REMOUNT)
48
51
/* Root offset of multi-mount */
49
if (*name == '/' && name_len == 1) {
53
if (root[len - 1] == '/') {
54
fullpath = alloca(len);
55
len = snprintf(fullpath, len, "%s", root);
52
56
/* Direct mount name is absolute path so don't use root */
53
} else if (*name == '/')
58
fullpath = alloca(rlen + name_len + 2);
60
char *estr = strerror_r(errno, buf, MAX_ERR_BUF);
61
logerr(MODPREFIX "alloca: %s", estr);
57
} else if (*name == '/') {
58
fullpath = alloca(len + 1);
59
len = sprintf(fullpath, "%s", root);
61
fullpath = alloca(len + name_len + 2);
62
len = sprintf(fullpath, "%s/%s", root, name);
67
sprintf(fullpath, "%s/%s", root, name);
69
sprintf(fullpath, "%s", name);
71
sprintf(fullpath, "%s", root);
73
66
debug(ap->logopt, MODPREFIX "calling mkdir_path %s", fullpath);
86
if (is_mounted(_PATH_MOUNTED, fullpath, MNTS_REAL)) {
88
MODPREFIX "warning: %s is already mounted", fullpath);
92
79
if (options && options[0]) {
93
80
for (p = options; (p1 = strchr(p, ',')); p = p1)
94
81
if (!strncmp(p, "ro", p1 - p) && ++p1 - p == sizeof("ro"))
148
135
if (ap->type != LKP_INDIRECT)
151
if ((!ap->ghost && name_len) || !existed)
138
if ((!(ap->flags & MOUNT_FLAG_GHOST) && name_len) || !existed)
152
139
rmdir_path(ap, fullpath, ap->dev);