MS_SLAVE
if (type & ~(MS_SHARED | MS_PRIVATE | MS_SLAVE | MS_UNBINDABLE))
if (flags & (MS_SHARED | MS_PRIVATE | MS_SLAVE | MS_UNBINDABLE))
(MS_UNBINDABLE | MS_PRIVATE | MS_SLAVE | MS_SHARED)
propagation |= MS_SLAVE;
if (type == MS_SLAVE) {
if (sm->mnt_propagation & MS_SLAVE) {
#ifndef MS_SLAVE
else if (flags & (MS_SHARED | MS_PRIVATE | MS_SLAVE |
flags &= (MS_REC | MS_SILENT | MS_SHARED | MS_PRIVATE | MS_SLAVE |
if (flags & MS_SLAVE)
if (flags & (MS_PRIVATE | MS_SLAVE | MS_UNBINDABLE))
if (flags & (MS_SHARED | MS_SLAVE | MS_UNBINDABLE))
} else if (flags & MS_SLAVE) {
flags &= ~MS_SLAVE;
if (flags & (MS_SHARED | MS_PRIVATE | MS_SLAVE))
ASSERT_EQ(mount(NULL, "/", NULL, MS_SLAVE | MS_REC, NULL), 0);
ret = mount("", "/b", NULL, MS_SLAVE, NULL);
ret = mount("", "/b", NULL, MS_SLAVE, NULL);
if (sys_mount(NULL, "/", NULL, MS_SLAVE | MS_REC, NULL) != 0)
if (sys_mount(NULL, "/", NULL, MS_SLAVE | MS_REC, NULL) == -1) {
ASSERT_EQ(sys_mount(NULL, "/", NULL, MS_SLAVE | MS_REC, NULL), 0);
ASSERT_EQ(sys_mount(NULL, "/", NULL, MS_SLAVE | MS_REC, NULL), 0);
ASSERT_EQ(sys_mount(NULL, "/", NULL, MS_SLAVE | MS_REC, NULL), 0);
ASSERT_EQ(sys_mount(NULL, "/", NULL, MS_SLAVE | MS_REC, NULL), 0);
ASSERT_EQ(sys_mount(NULL, "/", NULL, MS_SLAVE | MS_REC, NULL), 0);
ASSERT_EQ(sys_mount(NULL, "/", NULL, MS_SLAVE | MS_REC, NULL), 0);
ASSERT_EQ(sys_mount(NULL, "/", NULL, MS_SLAVE | MS_REC, NULL), 0);
if (mount(NULL, "/", NULL, MS_SLAVE|MS_REC, NULL) == -1)