X-Git-Url: http://git.tuebingen.mpg.de/?p=aple.git;a=blobdiff_plain;f=Filesystems.m4;fp=Filesystems.m4;h=ca894346e55d865ee7171c1052c22a01a005acf4;hp=75d07253d0f5d50630ba6ff5ddd2fb5e3ba44b21;hb=63ef3ef23517d1f63b4a17da8cecb88b8fa1ebdf;hpb=54a0a8be9b75196f1e0dd1986b5f052d115c1a70 diff --git a/Filesystems.m4 b/Filesystems.m4 index 75d0725..ca89434 100644 --- a/Filesystems.m4 +++ b/Filesystems.m4 @@ -1345,11 +1345,16 @@ is still open. Only after all the last file descriptor that refers to the thusly silly-renamed file is closed, the client removes the file by issuing an appropriate rpc.

-

This approach is not perfect. For one, if the client crashes, -a stale .nfs12345 file remains on the server. Second, -since silly renames are only known to the nfs client, bad things -happen if a different client removes the file.

- +

This approach is not perfect. For one, if the client crashes, a +stale .nfs12345 file remains on the server. Second, since +silly renames are only known to the nfs client, bad things happen if a +different client removes the file. Finally, if an application running +on a client removes the last regular file in a directory, and this +file got silly-renamed because it was still held open, a subsequent +rmdir will fail unexpectedly with Directory not +empty. Version 4.1 of the NFS protocol finally got rid of +silly renames: An NFS4.1 server knows when it its safe to unlink a +file and communicates this information to the client.

The file handle which an nfs client received through some earlier rpc can become invalid at any time due to operations on a different @@ -1396,11 +1401,11 @@ EXERCISES()

  • On an nfs server, run collectl -s F -i 5 and discuss the output.
  • -
  • In an nfs-mounted directory, run cat > foo &. Note - that the cat process automatically receives the STOP signal. - Run rm foo; ls -ltra. Read section D2 of the - nfs HOWTO for the - explanation.
  • +
  • In an nfs-mounted directory (nfs version 4.0 or earlier), run + cat > foo &. Note that the cat process automatically + receives the STOP signal. Run rm foo; ls -ltra. Read + section D2 of the nfs HOWTO + for the explanation.
  • In an nfs-mounted directory, run { while :; do echo; sleep 1; done; } > baz &. What happens if you remove the file on a