async_nfs/ 755 171 36 0 5155444642 11403 5ustar penlysatorasync_nfs/README 644 171 36 2503 5155444620 12337 0ustar penlysatorThis directory contains the patch needed to turn your SunOS 4.1.x NFS server machine into using asynchronous writes. NOTE: THIS SHOULD NOT BE USED WITHOUT CARE SINCE THIS VIOLATES THE PROTOCOL AND MAY CASE DATA LOSS ON THE CLIENT SIDE (Ie, they think that data they have written are stored, and then the NFS server crasches and reboots. The clients then continue as nothing has happened, although the data never got to the disk). SO BEVARE. THIS PATCH IS APPLIED ON YOUR OWN RISK. If you have the SunOS sources, then change the file 'nfsserver.c' in the routine 'rfs_read()' from: error = VOP_RDWR(vp, &uio, UIO_READ, IO_SYNC, u.u_cred); into: error = VOP_RDWR(vp, &uio, UIO_READ, 0, u.u_cred); And then in the routine 'rfs_write()' you change: error = VOP_RDWR(vp, &uio, UIO_WRITE, IO_SYNC, u.u_cred); into: error = VOP_RDWR(vp, &uio, UIO_WRITE, 0, u.u_cred); And that's it. The file nfs_server.o.sun4 contains a patched binary for Sun4, SunOS 4.1.x kernels. Apply at your own risk. Note: I didn't write this patch; Steinar Kjarnsroed (steinar@ifi.uio.no) did. I wrote this note and created the tar.Z file though. AS NOTE ABOVE; THIS IS ****NOT**** AN OFFICIAL OR SUPPORTED PATCH BY ANY MEANS. However, it will allow writes() to be **much** faster over NFS... /Peter Eriksson (pen@lysator.liu.se) async_nfs/nfs_server.o.sun4 644 171 36 44364 5155415307 14736 0ustar penlysator%x`㿀'DD@'  * ' `@'! ,#u%d@(@' '쀥 ab @`'쀥 #@E/%'5&耐 '쀧`a"@ '쀢`@ #dK`'/O瀤 O瀤`  %dTDO` @)  -# @ -/%@`@2  F&@`d@L2`@@&@`@Ԓ  F\&@`  @@"C @ 耢"Кb@ 2 آ???''''؀"  )` #d @ L2  /`d@L2 `d@L2`@@&@X "  J@ 2 N&@@b2  FE&@@`2`   @2 `   @ 2`  0&@%`  d L @"'- `d@L2 &@`$@`@&@@@㿀@2  F+&@@$&``$'  $7''''' #`D`cd@`L"`@$&`&`$$&`@&@㿠  @$@&`L&`H@В2 F&@`" @   `d@L2`cd`L`@" )` #d!@ L"  /`d @@L2 * `@&`H` D  $#8?&`P02;&`P  '? @&`P`P&`L  $%: $ %&`H`L`H  @ 2  ` + 3 6&`T@]`2 7  @ `P@ &`P $@ &`L`L ' $ '''7 7' $' ` d @L2" `d@L2`@ $# &`H" `L`H $ @ &`L" `L"`L@ $&`L&`H@&@㿠 P  L  L@ H@@ڒ2 F&@` " ` @2` "` @   ``cd@`L2! #d L " ` -`d @L2m 0" 4 0' ,''  '7 $%' , '`  `d@LM " 2 6 (   @ P6     @!@@. 4@@ 7'' $' ,'`  `  #d L@  @(6 @@.2 ` `d@L&@`@@   "@R "``2 X " O@2 w&@@ $<  2 ؞ ?' '7')< -2خ '7 '< 0 2  ''Ē +37@2 F=&@` "   @2  )`$ #d  L#\ @2 ` #d L@ `$@`@@@&@㿠 "  J@ 2 '&@@w2 F&@` " `  @2`   #`(`cd`L@ @&@㿠 "  J@ "   D "  DK 2 7&@@:2 F.&@` "  @W2 @! $2`  F&@@+`0`cd`L @ D@@&@㿠 @"  @J@ 2 5&@@2 F,&@@ 2 F &@  "   @ 2   %`,dL@ @@&@@` "  J@ 2 .&@@ ( '@2 F &@  " `  @̐2`   %`@dL @ $@&@X " O@2 G&@@e $ '@u2 F9&@  `"   @2 & !`4 #d L@2) ` #d@ L `$@`@@@&@㿠 "  J@ 2 '&@@&2 F&@` " `  @C2`   #`8`cd`L@ @&@㿀@2 F_&``" @ T `d!@L2I $ 2 $&`&`&`?&@!:# $& $ $@ &` $ &@ $ &``' $'''7 ' $' `<d@L" $&` "  $@2 &`&` $&&`&`@&`㿠  @`@2  F&@`` @  &@@&`&`&` &`&`@  -㿠 28- ! *``-2* @ ` @$ ! "   $ )  + %```Ҵ-"``"``""`H'D'H''''''  "`'D' `D@ ' @wD`'܀܀ D`  @' @]ܮ%'. .`ܵ....9 @'`*c['`@H H@H@`' @$U'``ؐ ؒ`@ '@'3`cdL'9 #d'`Lؒ`@'쀐  D@H@'`D @" @ @'`@,+`' %"  * ` `''쀐 `' `c" "  #@&쀐$'%` `@5 && #@D@' '2`D h@D@D@ ̀ D@  '쀐%'&` `@' #"`"`''''HH@  @ '5䀐 H@  @ ' @ @  `cd#L@%'$㿠@6` 6` 6` &` &`  &`$ &`( &`,㿘" @2` ` @ 2  @ "   ` 2   "  㿠@  `@"@   ` 㿠@     @@2    ` 㿘 " ` ``d*` @ u  @ "  ` `")`f  6 6? ``2`` `2` 6 6-  6` 6``@*`/` ` @ 8<  @2W` " 66 67W. @L66 ?& *?L: ?& *??#"  P H@H$h ,X8HDh$HDHDh$( nfssvc (pid %d) exiting on signal %d ..rfs_read: attempt to read from non-file rfs_read: map failed, error = %d rfs_write: attempt to write to non-file rfs_readdir: attempt to read non-directory nfs_server: bad proc number nfs_server: bad version number nfs_server: bad getargs nfs_server: weak authentication, source IP address=%s nfs_server: bad freeargs nfs_server: bad sendreply NFS request from unprivileged port. w,Z0ZP%T %\%` %hhZZZZUXH PZ Z(<%@ %P%T %tZZZZ' '$Z(Z8H%L %T%X %`ZZ"0&$T!ZZZ Z8Z@Zl"x&' '4Z<ZxZZ"TkD&$& dZlZKh&DK4'8q< 'HZPZ|ZZZZZZ "0%4 %x|txvv$ " 0' 4 ' 8q @ D L \ Z Z Z Z " L, xK &t K< L( Pq T ( `Z hZ Z Z Z Z $Z DZ )P  )P 4\ )T  )T 44 $ Z (Z L)P P )P T p)T t )T x Kx Z Z ", &$ZZZZ" k&$&ZZ& & ZZ&$&ZZ$&0&ZZ&ZZZ Z@"Pk\&h&ZZ8&(=q| (=ZZ TZtZ& Kd2&p' ''% %''  '''  '$8'< 'P'T 'X'\ '` 't'x '' '' ''' ' ' '' ' ' Trh(il (ipq;D( (q(,%0 %@ZDZ\'` 'ds`( (qD8T$`ZdZtZxZ[l:(D( (q8'< '@PT  ZZ(Z,Z4dZZZZ0.,9`8 ( 4Z 8Z (  ( q,!$u!8)!< )!@q!l!p !Z!Z!E8!!!!! "TTݬ#\ܤ#t#'# '#)+#q # )+$ D$# RR $p(<0`8<@H`PTXR`Rhlpx^<>]_ RR `(^4S= S(,80\8S@D@HPSX\,`h^ptxxSHL<'-7AKT]fo{! '#'09BKRYcs@Hp#'1FPZev#X8 !(08CTbp"x"D%#1 <'GxR,]hq#}&.6>F%R%^cks{%4( )5;L_as_fault_longjmp_wantin_wakeup_file_bufalloc_bufchain_bclnlist_mclfree_nfs_svc_nchrdev_nblkdev_vattr_null_pidhash_physmem_physmax_segmap_release_svckudp_create_freeproc_sattr_to_vattr_svc_unregister_mbuf_to_iov_xdr_statfs_xdr_slargs_xdr_saargs_rfssize_rootdev_nfs_portmon_svc_run_segkmap_selwait_bzero_bcopy_isrofile_vattr_to_nattr_authdes_getucred_crget_nbuf_vn_rele_rfs_symlink_rfs_readdir_rfs_setattr_rfs_getattr_proc_new_kmem_resize_whichqs_svckudp_dup_boothowto_bfreelist_checkauth_nfstsize_nullfree_new_kmem_fast_alloc_pgrphash_panicstr_fileNFILE_svckudp_dupdone_svckudp_dupsave_svcerr_weakauth_svcerr_progvers_xdr_fhandle_xdr_rnmargs_xdr_rdlnres_rfs_read_rootname_rfs_link_rfs_null_mfree_inet_ntoa_crfree_curpri_nproc_nfile_dumplo_dumpvp_kmem_free_xdr_putrddirres_rfs_dispatch_rfs_readlink_eqaddr_svc_register_fhtovp_xdr_void_xdr_enum_getvfs_relvm_runin_nfs_chars_zombproc_procNPROC_uunix_findexport_xdr_linkargs_xdr_readargs_xdr_diropres_xdr_rdresult_xdr_attrstat_rfs_write_rfsfreesp_rfs_rmdir_rfs_mkdir_rfs_error_allproc_hostinlist_soreserve_qs_bufhash_makefh_maxmem_m_want_mbstat_noproc_rfs_rddirfree_printf_svcerr_noproc_svcerr_decode_segmap_getmap_svc_sendreply_kas_getsock_runrun_rootvp_rfsput_rfsget_runout_nfsreadmap_nfsd_count_log_strlen_strcmp_setjmp_svstat_bcmp_kmem_fast_free_xdr_rddirargs_xdr_creatargs_xdr_writeargs_xdr_diropargs_rfsdisptab_rfs_rename_rfs_remove_rfs_create_rfs_rdfree_rfs_rlfree_rfs_lookup_rfs_statfs_exit_new_kmem_alloc