aboutsummaryrefslogtreecommitdiffhomepage
path: root/system/dispatcher.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-09-06 22:30:08 +0900
committerOphestra <cat@gensokyo.uk>2025-09-06 22:30:08 +0900
commit323d132c40a74c5ac7a91731a0c43def2a8be7f1 (patch)
treead68a8f2ec743e6a92efd0ff759e413cc857dc36 /system/dispatcher.go
parent6cc2b406a45dee7c3fcb686036efdccc1776368d (diff)
system/mkdir: use syscall dispatcher
This enables mkdir op methods to be instrumented. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'system/dispatcher.go')
-rw-r--r--system/dispatcher.go10
1 files changed, 8 insertions, 2 deletions
diff --git a/system/dispatcher.go b/system/dispatcher.go
index 5d5c82bf..038231bb 100644
--- a/system/dispatcher.go
+++ b/system/dispatcher.go
@@ -15,6 +15,10 @@ type syscallDispatcher interface {
// just synchronising access is not enough, as this is for test instrumentation.
new(f func(k syscallDispatcher))
+ // mkdir provides os.Mkdir.
+ mkdir(name string, perm os.FileMode) error
+ // chmod provides os.Chmod.
+ chmod(name string, mode os.FileMode) error
// link provides os.Link.
link(oldname, newname string) error
// remove provides os.Remove.
@@ -44,8 +48,10 @@ type direct struct{}
func (k direct) new(f func(k syscallDispatcher)) { go f(k) }
-func (k direct) link(oldname, newname string) error { return os.Link(oldname, newname) }
-func (k direct) remove(name string) error { return os.Remove(name) }
+func (k direct) mkdir(name string, perm os.FileMode) error { return os.Mkdir(name, perm) }
+func (k direct) chmod(name string, mode os.FileMode) error { return os.Chmod(name, mode) }
+func (k direct) link(oldname, newname string) error { return os.Link(oldname, newname) }
+func (k direct) remove(name string) error { return os.Remove(name) }
func (k direct) aclUpdate(name string, uid int, perms ...acl.Perm) error {
return acl.Update(name, uid, perms...)