mutex_lock(&mnt->parent->lock);
llist_append(&parent->submnts, &mnt->sibmnts);
mutex_unlock(&mnt->parent->lock);
mutex_lock(&mnt->parent->lock);
llist_append(&parent->submnts, &mnt->sibmnts);
mutex_unlock(&mnt->parent->lock);
- return vfs_mount_at(fs_name, device, vfs_sysroot);
+ return vfs_mount_at(fs_name, device, vfs_sysroot, 0);
{
int errno;
struct v_dnode* mnt;
if (!(errno =
vfs_walk(__current->cwd, target, &mnt, NULL, VFS_WALK_MKPARENT))) {
{
int errno;
struct v_dnode* mnt;
if (!(errno =
vfs_walk(__current->cwd, target, &mnt, NULL, VFS_WALK_MKPARENT))) {
-__DEFINE_LXSYSCALL3(int,
+int
+vfs_check_writable(struct v_dnode* dnode)
+{
+ if ((dnode->mnt->flags & MNT_RO)) {
+ return EROFS;
+ }
+ return 0;
+}
+
+__DEFINE_LXSYSCALL4(int,