diff --git a/fs/gitilesfs.go b/fs/gitilesfs.go
index 34baf5f..984ac29 100644
--- a/fs/gitilesfs.go
+++ b/fs/gitilesfs.go
@@ -56,6 +56,8 @@
 	linkTarget []byte
 }
 
+func (n *linkNode) Deletable() bool { return false }
+
 func newLinkNode(target string) *linkNode {
 	return &linkNode{
 		Node:       nodefs.NewDefaultNode(),
@@ -214,6 +216,8 @@
 	return nodefs.NewDataFile(d.data), fuse.OK
 }
 
+func (n *dataNode) Deletable() bool { return false }
+
 func newDataNode(c []byte) nodefs.Node {
 	return &dataNode{nodefs.NewDefaultNode(), c}
 }
@@ -233,6 +237,8 @@
 	return r
 }
 
+func (r *gitilesRoot) Deletable() bool { return false }
+
 func (r *gitilesRoot) OnMount(fsConn *nodefs.FileSystemConnector) {
 	if err := r.onMount(fsConn); err != nil {
 		log.Printf("onMount: %v", err)
diff --git a/fs/manifestfs.go b/fs/manifestfs.go
index f2e2591..fe759c9 100644
--- a/fs/manifestfs.go
+++ b/fs/manifestfs.go
@@ -41,6 +41,8 @@
 	manifestXML []byte
 }
 
+func (r *manifestFSRoot) Deletable() bool { return false }
+
 // NewManifestFS creates a Manifest FS root node.
 func NewManifestFS(service *gitiles.Service, cache *cache.Cache, opts ManifestOptions) (nodefs.Node, error) {
 	xml, err := opts.Manifest.MarshalXML()
diff --git a/fs/multifs.go b/fs/multifs.go
index 962b3b7..c9887b0 100644
--- a/fs/multifs.go
+++ b/fs/multifs.go
@@ -42,6 +42,8 @@
 	})
 }
 
+func (r *configNode) Deletable() bool { return false }
+
 func NewMultiFS(service *gitiles.Service, c *cache.Cache, options MultiFSOptions) *multiManifestFSRoot {
 	r := &multiManifestFSRoot{
 		Node:    nodefs.NewDefaultNode(),
@@ -52,6 +54,8 @@
 	return r
 }
 
+func (r *multiManifestFSRoot) Deletable() bool { return false }
+
 type configNode struct {
 	nodefs.Node
 	root *multiManifestFSRoot
@@ -71,6 +75,8 @@
 	return c.link, fuse.OK
 }
 
+func (r *configEntryNode) Deletable() bool { return false }
+
 func (c *configNode) Unlink(name string, ctx *fuse.Context) fuse.Status {
 	child := c.root.Inode().RmChild(name)
 	if child == nil {
