static int mount_entry(const char *fsname, const char *target,
const char *fstype, unsigned long mountflags,
- const char *data, int optional, const char *rootfs)
+ const char *data, int optional, int dev, const char *rootfs)
{
#ifdef HAVE_STATVFS
struct statvfs sb;
unsigned long required_flags = rqd_flags;
if (sb.f_flag & MS_NOSUID)
required_flags |= MS_NOSUID;
- if (sb.f_flag & MS_NODEV)
+ if (sb.f_flag & MS_NODEV && !dev)
required_flags |= MS_NODEV;
if (sb.f_flag & MS_RDONLY)
required_flags |= MS_RDONLY;
char *mntdata;
int ret;
bool optional = hasmntopt(mntent, "optional") != NULL;
+ bool dev = hasmntopt(mntent, "dev") != NULL;
char *rootfs_path = NULL;
if (rootfs && rootfs->path)
}
ret = mount_entry(mntent->mnt_fsname, path, mntent->mnt_type, mntflags,
- mntdata, optional, rootfs_path);
+ mntdata, optional, dev, rootfs_path);
free(mntdata);
return ret;