extern int mnt_optlist_get_propagation(struct libmnt_optlist *ls);
extern int mnt_optlist_is_propagation_only(struct libmnt_optlist *ls);
extern int mnt_optlist_is_remount(struct libmnt_optlist *ls);
+extern int mnt_optlist_is_bind(struct libmnt_optlist *ls);
+extern int mnt_optlist_is_move(struct libmnt_optlist *ls);
+extern int mnt_optlist_is_rdonly(struct libmnt_optlist *ls);
+
extern int mnt_optlist_merge_opts(struct libmnt_optlist *ls);
extern int mnt_opt_has_value(struct libmnt_opt *opt);
unsigned long propagation; /* propagation MS_ flags */
struct list_head opts; /* parsed options */
- unsigned int merged : 1, /* don't care about MNT_OPTSRC_* */
- remount : 1;
+ unsigned int merged : 1, /* don't care about MNT_OPTSRC_* */
+ is_remount : 1,
+ is_bind : 1,
+ is_rdonly : 1,
+ is_move : 1;
};
struct libmnt_optlist *mnt_new_optlist(void)
if (opt->ent->id & MS_PROPAGATION)
ls->propagation &= ~opt->ent->id;
else if (opt->ent->id == MS_REMOUNT)
- ls->remount = 0;
+ ls->is_remount = 0;
+ else if (opt->ent->id == MS_BIND)
+ ls->is_bind = 0;
+ else if (opt->ent->id == MS_RDONLY)
+ ls->is_rdonly = 0;
+ else if (opt->ent->id == MS_MOVE)
+ ls->is_move = 0;
}
optlist_cleanup_cache(ls, opt->map);
if (map && ent && map == ls->linux_map) {
if (ent->id & MS_PROPAGATION)
ls->propagation |= ent->id;
- else if (ent->id == MS_REMOUNT)
- ls->remount = 1;
+ else if (opt->ent->id == MS_REMOUNT)
+ ls->is_remount = 1;
+ else if (opt->ent->id == MS_BIND)
+ ls->is_bind = 1;
+ else if (opt->ent->id == MS_RDONLY)
+ ls->is_rdonly = 1;
+ else if (opt->ent->id == MS_MOVE)
+ ls->is_move = 1;
}
if (ent && map) {
else
continue; /* name=<value> */
sz = p - ent->name;
+ p -= sz;
} else {
p = (char *) ent->name;
sz = strlen(ent->name); /* alone "name" */
int mnt_optlist_is_remount(struct libmnt_optlist *ls)
{
- return ls && ls->remount;
+ return ls && ls->is_remount;
+}
+
+int mnt_optlist_is_move(struct libmnt_optlist *ls)
+{
+ return ls && ls->is_move;
}
+int mnt_optlist_is_bind(struct libmnt_optlist *ls)
+{
+ return ls && ls->is_bind;
+}
+
+int mnt_optlist_is_rdonly(struct libmnt_optlist *ls)
+{
+ return ls && ls->is_rdonly;
+}
+
+
int mnt_opt_has_value(struct libmnt_opt *opt)
{
return opt && opt->value;