Commit 36d71936 authored by Aaron Jacobs's avatar Aaron Jacobs

Added a note about nlookup for the root inode.

For #7.
parent bd16024e
...@@ -220,10 +220,11 @@ func (o *SetInodeAttributesOp) Respond(err error) { ...@@ -220,10 +220,11 @@ func (o *SetInodeAttributesOp) Respond(err error) {
// Decrement the reference count for an inode ID previously issued by the file // Decrement the reference count for an inode ID previously issued by the file
// system. // system.
// //
// The comments for the ops that implicitly increment the reference // The comments for the ops that implicitly increment the reference count
// count contain a note of this. For example, LookUpInodeOp and MkDirOp. The // contain a note of this (but see also the note about the root inode below).
// authoritative source is the libfuse documentation, which states that any op // For example, LookUpInodeOp and MkDirOp. The authoritative source is the
// that returns fuse_reply_entry fuse_reply_create implicitly increments (cf. // libfuse documentation, which states that any op that returns
// fuse_reply_entry fuse_reply_create implicitly increments (cf.
// http://goo.gl/o5C7Dx). // http://goo.gl/o5C7Dx).
// //
// If the reference count hits zero, the file system can forget about that ID // If the reference count hits zero, the file system can forget about that ID
...@@ -239,6 +240,16 @@ func (o *SetInodeAttributesOp) Respond(err error) { ...@@ -239,6 +240,16 @@ func (o *SetInodeAttributesOp) Respond(err error) {
// * (http://goo.gl/VQMQul) fuse_dentry_revalidate increments after // * (http://goo.gl/VQMQul) fuse_dentry_revalidate increments after
// revalidating. // revalidating.
// //
// In contrast to all other inodes, RootInodeID begins with an implicit
// reference count of one, without a corresponding op to increase it:
//
// * (http://goo.gl/gWAheU) fuse_fill_super calls fuse_get_root_inode.
//
// * (http://goo.gl/AoLsbb) fuse_get_root_inode calls fuse_iget without
// sending any particular request.
//
// * (http://goo.gl/vPD9Oh) fuse_iget increments nlookup.
//
type ForgetInodeOp struct { type ForgetInodeOp struct {
commonOp commonOp
......
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