git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
feat: owloysius - dynamic init function invocator
[lunaix-os.git]
/
lunaix-os
/
kernel
/
fs
/
mount.c
diff --git
a/lunaix-os/kernel/fs/mount.c
b/lunaix-os/kernel/fs/mount.c
index 084a400a1993000a09f7a770fa844a3ec21f5927..96cc7418cec8a702573120a70b824d79fcaf89ac 100644
(file)
--- a/
lunaix-os/kernel/fs/mount.c
+++ b/
lunaix-os/kernel/fs/mount.c
@@
-33,7
+33,7
@@
vfs_create_mount(struct v_mount* parent, struct v_dnode* mnt_point)
llist_append(&parent->submnts, &mnt->sibmnts);
mutex_unlock(&mnt->parent->lock);
}
llist_append(&parent->submnts, &mnt->sibmnts);
mutex_unlock(&mnt->parent->lock);
}
-
+
atomic_fetch_add(&mnt_point->ref_count, 1);
return mnt;
atomic_fetch_add(&mnt_point->ref_count, 1);
return mnt;
@@
-64,7
+64,7
@@
__vfs_do_unmount(struct v_mount* mnt)
mnt_chillax(mnt->parent);
vfs_sb_free(sb);
mnt_chillax(mnt->parent);
vfs_sb_free(sb);
-
vfs_d_free(mnt->mnt_point
);
+
atomic_fetch_sub(&mnt->mnt_point->ref_count, 1
);
vfree(mnt);
return errno;
vfree(mnt);
return errno;