home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume3 / rfs / patches1 / text0000.txt < prev   
Encoding:
Text File  |  1986-11-30  |  3.8 KB  |  96 lines

  1.  
  2. Many have installed RFS and tell me that they are satisfied.  As anyone
  3. would, I am grateful that I could contribute something useful.
  4. Please send comments or fixes to me.  I will repost as appropriate.
  5. There are two very serious bugs in the distribution.  What follows is
  6. fixes plus my response to a couple of good questions.
  7.  
  8. -- #1 --------------------------------------------------------------
  9. An oversight in making the diffs.  If you try to exec a program on a
  10. remote system, the system crashes with a ``panic: iput''.  You need
  11. to fix the end of execve so that it looks like:
  12.  
  13. bad:
  14.     if (bp)
  15.         brelse(bp);
  16.     if (bno)
  17.         rmfree(argmap, (long)ctod(clrnd((int) btoc(NCARGS))), bno);
  18. #ifdef REMOTEFS
  19.     if (remote < 0)
  20. #endif REMOTEFS
  21.     iput(ip);
  22. }
  23.  
  24. It appears that 4.3 does not need this because it does a
  25.     if (ip)
  26.         iput(ip);
  27. which accomplishes the same thing.
  28. -- #2 --------------------------------------------------------------
  29. In rmt_io.c change line 77 so that sleep() has the right number of
  30. arguments:
  31.  
  32.     sleep((caddr_t)&rp->r_sock, PZERO+1);
  33. -- comments -------------------------------------------------------------
  34.  
  35. Ken Lalonde writes:
  36. >The /sys/remote code gets lots of complaints from lint:
  37. >lack of casts: ((char *)0, (caddr_t)), unused variables,
  38. >lack of (void)s.  None of this affects the generated code,
  39. >but it's nice to keep the kernel lint-free.
  40.  
  41.     Very true.
  42.  
  43. >Shouldn't rmtioctl() and rmtselect() return an error, rather
  44. >than 0?
  45.     Here is how I remember it:  the remoteops structure (which holds the
  46.     reference to rmtioctl() and rmtselect() is purely for the sake of the
  47.     select() system call.  I.e. select() calls the selscan() which calls
  48.     the select routine via
  49.         (*fp->f_ops->fo_select)(fp, flag)
  50.     Which always returns 0.  It appears that this should really return a 1
  51.     so that a select on a remote file descriptor always succeeds.  But
  52.     maybe not.  I would appreciate it if you would investigate further.  As
  53.     for the ioctl, there is a rmt_ioctl() (not rmtioctl) in rmt_syscall2.c
  54.     which returns the error because it is what is called by
  55.     remote_startup(), etc.
  56.  
  57. >It seems to me the idea of a generic mount point isn't
  58. >worth the trouble (extra code in the kernel and server,
  59. >a new syscall, the "pwd" problem).  A script to mount
  60. >each host, run at boot time, does the job just as well.
  61.     In your environment (a few big machines), I agree completely.  But I
  62.     have two however's, however.  First, I made very sure that very little
  63.     code that has to do with generic mount is in the way of the main flow
  64.     of code.  Second, in an environment of 2 VAX and 100 workstations, it
  65.     is indispensable.
  66. ------------------------------------------------------------------
  67.  
  68. D Gwyn writes:
  69. >I applaud the contribution of RFS (which should be given some
  70. >other name to avoid confusion with AT&T's "RFS"), but I take
  71. >issue with the claim that one does not want "find / -print"
  72. >to cross over to remote file systems as it traverses the
  73. >directory.  To the contrary, that is the whole point of RFS
  74. >transparency.  There are some good examples (such as grepping
  75. >for "rnj" in /n/*/etc/passwd) in a Bell Labs paper published
  76. >one or two USENIXes ago.
  77.     I admit that ``grep "rnj" /n/*/etc/passwd'' is desirable,
  78.     but in general, it is the exception to the rule.  And in fact,
  79.     if you make that the rule, it becomes impossible to find files
  80.     that are only on your machine.  How does AT&T's version do it?
  81.     I think that the /n node in the example is roughly equivalent to the
  82.     generic mount point in RFS; if this was more completely implemented, I
  83.     would think that it should be able to accomplish about the same thing.
  84.     As it is, the best you can do is with csh:
  85.  
  86.         grep "rnj" /{vax1,vax2,vax3}/etc/passwd
  87.     or with the generic mount point.
  88.         grep "rnj" /net/{vax1,vax2,vax3}/etc/passwd
  89.  
  90. ------------------------------------------------------------------
  91.             Todd Brunhoff
  92.             toddb%crl@tektronix.csnet
  93.             {ucbvax,decvax}!tektronix!toddb
  94.  
  95.  
  96.