Commit 77165f11 authored by Aaron Jacobs's avatar Aaron Jacobs

Added an Unlink method.

parent 125491a6
...@@ -118,6 +118,15 @@ type FileSystem interface { ...@@ -118,6 +118,15 @@ type FileSystem interface {
ctx context.Context, ctx context.Context,
req *RmDirRequest) (*RmDirResponse, error) req *RmDirRequest) (*RmDirResponse, error)
// Unlink a file from its parent. If this brings the inode's link count to
// zero, the inode should be deleted once the kernel calls ForgetInode. It
// may still be referenced before then if a user still has the file open.
//
// Sample implementation in ext2: ext2_unlink (http://goo.gl/hY6r6C)
Unlink(
ctx context.Context,
req *UnlinkRequest) (*UnlinkResponse, error)
/////////////////////////////////// ///////////////////////////////////
// Directory handles // Directory handles
/////////////////////////////////// ///////////////////////////////////
...@@ -515,6 +524,18 @@ type RmDirRequest struct { ...@@ -515,6 +524,18 @@ type RmDirRequest struct {
Name string Name string
} }
type UnlinkResponse struct {
}
type UnlinkRequest struct {
Header RequestHeader
// The ID of parent directory inode, and the name of the file being removed
// within it.
Parent InodeID
Name string
}
type RmDirResponse struct { type RmDirResponse struct {
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment