summaryrefslogtreecommitdiffhomepage
path: root/pkg/abi/linux
diff options
context:
space:
mode:
authorRidwan Sharif <ridwanmsharif@google.com>2020-08-11 12:13:01 -0400
committerAndrei Vagin <avagin@gmail.com>2020-09-16 12:19:30 -0700
commitbc07df88878f47a496f8b364b286bf0b11c0e76f (patch)
tree4733797a6d015e24dbb66a989bd1643279fe48a8 /pkg/abi/linux
parent713400d6b0f2eef6a368bc9cb76a15ee3334d1e5 (diff)
Implement FUSE_RMDIR
Fixes #3587 Co-authored-by: Craig Chi <craigchi@google.com>
Diffstat (limited to 'pkg/abi/linux')
-rw-r--r--pkg/abi/linux/fuse.go26
1 files changed, 26 insertions, 0 deletions
diff --git a/pkg/abi/linux/fuse.go b/pkg/abi/linux/fuse.go
index 0ece7b756..c75debb8c 100644
--- a/pkg/abi/linux/fuse.go
+++ b/pkg/abi/linux/fuse.go
@@ -569,3 +569,29 @@ func (r *FUSEMkdirIn) MarshalUnsafe(buf []byte) {
func (r *FUSEMkdirIn) SizeBytes() int {
return r.MkdirMeta.SizeBytes() + len(r.Name) + 1
}
+
+// FUSERmDirIn is the request sent by the kernel to the daemon
+// when trying to remove a directory.
+//
+// Dynamically-sized objects cannot be marshalled.
+type FUSERmDirIn struct {
+ marshal.StubMarshallable
+
+ // Name is a directory name to be looked up.
+ Name string
+}
+
+// MarshalUnsafe serializes r.name to the dst buffer.
+func (r *FUSERmDirIn) MarshalUnsafe(buf []byte) {
+ copy(buf, r.Name)
+}
+
+// SizeBytes is the size of the memory representation of FUSERmDirIn.
+func (r *FUSERmDirIn) SizeBytes() int {
+ return len(r.Name) + 1
+}
+
+// UnmarshalUnsafe deserializes r.name from the src buffer.
+func (r *FUSERmDirIn) UnmarshalUnsafe(src []byte) {
+ r.Name = string(src)
+}