fuse: fix nlink after unlink
authorMiklos Szeredi <mszeredi@suse.cz>
Mon, 5 Mar 2012 14:48:11 +0000 (15:48 +0100)
committerMiklos Szeredi <mszeredi@suse.cz>
Mon, 5 Mar 2012 14:48:11 +0000 (15:48 +0100)
Anand Avati reports that the following sequence of system calls fail on a fuse
filesystem:

  create("filename") => 0
  link("filename", "linkname") => 0
  unlink("filename") => 0
  link("linkname", "filename") => -ENOENT ### BUG ###

vfs_link() fails with ENOENT if i_nlink is zero, this is done to prevent
resurrecting already deleted files.

Fuse clears i_nlink on unlink even if there are other links pointing to the
file.

Reported-by: Anand Avati <avati@redhat.com>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>

No differences found