Date: Thu, 14 Aug 1997 02:20:41 +0900 From: KATO Takenori <kato@migmatite.eps.nagoya-u.ac.jp> To: current@FreeBSD.org Cc: dyson@FreeBSD.org, bde@FreeBSD.org Subject: Read-only mount of union filesystem Message-ID: <199708131720.CAA03222@gneiss.eps.nagoya-u.ac.jp>
next in thread | raw e-mail | index | archive | help
This mail is Cc'ed to Bruce who notified me the problem, and also to John who handbook says coordinator of union fs is. Bruce notified me that union fs doesn't support read-only mount. I, now, consider that there are two ways to implement read-only mount: 1. To modify each fs layer stuff. 2. To modify vfs layer stuff. FreeBSD-current chose first way that each filesystem stuff should handle MNT_RDONLY flag. On the contrary, NetBSD uses later way and MNT_RDONLY flag is handled in sys/kern/vfs_{lookup,syscall,vnops}.c. I will add patches for above two ways below. I prefer latter way because it is general way and maintainer of each filesystem doesn't need to be care of upper layer. 1. Following patch supports rdonly moount in union fs layer: ---------- BEGIN ---------- begin 644 rdonly-unionfs.diff.gz M'XL(",4I\3,``W)D;VYL>2UU;FEO;F9S+F1I9F8`K95[C^(V$,#_#I]B3I4X M2!-VR=Z&EU@)+;F6'A=66>!:515*$X=-+[$CV\EJ[_79:SLD0(\[ME412BS/ MT_.;<<(XBL#T:>`">V(7:<R"B%WD.":X0VB\+9>;`I.,=8*O=([%#5W7G^-& M>X="F.1;Z%Y!UQI:O6&W"]W!H-<P3?-,C'_:VL/KG:U^_%/)6%W;L*PNJ`WI MO-P8@%B;#0`MQAQB]O@0<T1R/I);C-,\X%#XG%/QE'N-'^5?N]#E$W28QLQ/ M$O((CU08@M!$:<:`$^`/"*(X0>(08@]2DF,N$J;(#TV"DZ=.Z>%"ON((6JT` M9^9-@#=1XF\9-&%V/Y_<+V_=-C2;T`H+(2TVRHUYDV*N](3:6W>Y\:8+=_Z; M5)3>M-H5]E,4DPS&8Y@Z<V?IP*=/<$+H.>[DK=-N*VN*>$XQM!QO\?J^/9(G M!O@ACD(4`2;\"7%5+I'RH:<$8>GI2N8@Q)IV*,PX_=WZ0\I?=EY*C9.$[%>& M90\."/4LP^KW:T+:9_7,$:6$PAC*;D@(>9]GW5:>FC=YNLFS#-$B,Z"I5J)L M1IF/IC5KF<A-'4S;@?P?2%8H56&J%,?@_+*Z7WK.<N6Y"N/W("MS[5^1/HGZ MUG,F9U'#Q]*!3/=%0H+WF4\1YF4+[.GM\AS#E_GB]LW=1)@OR\J=Z!-)2(E4 MQ0\[9'_<Z6(I_C(\5.'#'`MTN$(GLZS8U7H2U*FFL:\O#?OZ>M\TMCTP[/Y5 MW335#&,2(M"+;/3U)O,+%):2\[/-&1!\T`[L_&3[H@:^X"EB-6']SIL).+(7 MROUGT*Y@L<>8!P_'AOPI0Y4\\!F"M>?\-(1R.9UYU7+NOAF>X?:YFNN6A`#' M5-KP8@SN:CY?WU507L]^7=VU<FR`G":Y4R4FK&4]3P'KV9;1L_M[8+W!I=&_ MM"M@'P_XE`->0LK%]0+KY6+ESA9N78'V(<Z,D@!T&;P49^IL1Y>X7OA[N5B/ MJIM?#>SH6;?[?^B`[Z+63U[AA30I_-WDB-JOW<5Z,I=378GR.)2"EGAO>+N6 ME[=1I;3=*6V/E6JYS^,4=7BQ82@X"G/L)OV6VEY#8I*1Y*(.]8UO"LAOBJPS MJ#K_[.,P066GD@@$,1R(Q/`61/$1!?+G7T@P%'?Q!T0)L/@#,AI_`Y;ZYF.Q #"``` ` end ---------- END ---------- I'm not 100% sure of the change in union_lookup(). 2. Following patch supports rdonly mount in vfs layer: ---------- BEGIN ---------- begin 644 rdonly-vfs.diff.gz M'XL("!PG\3,``W)D;VYL>2UV9G,N9&EF9@#M66UOXC@0_MS^BKDO7>`")>$E M2:NNQ+7I'BJ%%=#NK4ZGR$T,C0I.E)CTJMO^]QL[A`*%"G8%M-U%;>+8,V// M,\],K-CU>CW(D]!I0O00'=[1D!7\T.L?QKW('OC^W2@H.).AF=[]7"[W@M+> M%^I";=0'M02J>E0L'97*H)JFOI_/YQ=;?*Y2T1*5W.Q/3ETN591R6079`;"W M!SFH]\`)*>$>ZP-A+A`.%&]^#P+";QD94@7X+67@$/SW6>2Y-$R5R6#@WPO- MGC>@P'VXH8DUZA;&,H?[O^'=ZT$F='TV>,C"?W)DCX:A'\()6.W6>><XZ>O[ MP@9QD\='Z7>Z:&SG=[5H^/8-,LP-\A^99[LQWF-[Z(\8SW\<,F[W!J0/!W#9 M[-KMLU:S\36[EI>+0E71#*6"X4]#=2BON/HS+Y(.@.N%U.%^^`#WH<<I8L#I M,.`1^`S0&S<O%RY]1.K@6%1(3$CGIGP[.)#]^,LX#%USF"T0]/P`3D[@S&I8 M74L`L&"P;35KE];$VP7.IKYJQS*8B5N523`WX=9TS-PEH1J'"65DI#/WA/&` MA)1QA&/-4&>WAN`BHE3+NE*ME-Y63E?+!BZZO/N<WDHN5_6R4C6*[RV7JWH% MW=)VGLM3H5J6SZ\LC]V7MA#8XR!\T?PFXJE_R3;B26#!1J*T9"/QDM)+6PE5 MURJ*JI>>"D^,.`!S"U@VXT"Z?-WZ;#>L6L?*Q($"XB__,;!'F)>N`G+`_M*N M=ZVLE(X9[FJ<.RG;N+"MOTX;5YWZ-0(N'MM6M_T5+:`L!OBZUNVV[>95HY$Y MB)%58=(MFX68R.A&N)S.::W]*3,B:%)V)6)I<,3Z.E97V)*S)J9FEQF,%Q>, M.,HD#R'EHY!!1MJ174E52S'1)RFQ34Q$NJQ`<YD?<_04F`PBBMP5@TO`717= MM>%%G<>5,%[,PZJ*F%?-61YF(AZ.'`XQ\UT*N6P/)^W9+N'DO3%3B%XU&ZW3 M"RE9G`PL9VE5L%2?8^G.$'OSO%TK`HLY;!J*:A2KK[*6#@4?9D`3/?BRA%JC M\=EJ7W8V6U01%P1'-=YY45T1YBU75Z-41O#+VANIKIOCZOIEUB@+WE:,GZ[, M;IK)/UYO#;V$H3&T5UEO1YX[BQYVS(GTYT7ZJ<CFJK!A*JI9U-YY%5X._BKH M;[DXFRK2V-1^T7AU&ILE`5FY^HO&KXC&%0UC4E7?R!YCV\1>?^=AZKCS,`WS MI]MY[(CV/[XA,4U3T8I%<R>5?`(-X=Z0%GAL1]3!Z7G\=_&?\>,2038G.1+/ MZ$^Q6)S;F#\SK2XV/7QN6EUH>E.O"*VHZ1B+J0/'-_F*6#FHWQ'5U</Z'7'= MW,OGQ:_N6!6#9Y_<QYTR1Y>JK/&Q?:E&17WA2[LI7H]Z4AJ2^JXIFCKAISAP M&!^__#Y[_++JH<OQ6''$!C2*Q"%;,NQ%0"!"ZE(.&!("-X+'HNG<DI`XG(9C M39?&GD/1O#B48UQ,E5I)YB@D@H?BMB+'T3$4WHON/>[<IAK\(:#IB$.0[==M MZ],1),VS>CMM-IH71U)HP@29)=GC*<UFJYF*G_XYT>Q@&3^:DCJOG[?2L3]J M9Y-F(YW@!D&]2^P^BJN\3,["ZCV!1$@_1!`A:!AX3O_E0"+$U1/'DX#^W8Z% M!6;R]:P`#Q_$,68OI!@'#J,`,75H`=#@6/@>\27>0!$-A[`/')ZB[K%^8?]_ (951%\*DB``#$ ` end ---------- END ---------- After this patch is aplied, redundant code remains in each filesystem stuff, but it should not have bad effect except for filesize and execution time. I will commit one of them after discussion. Please comment. ---- KATO Takenori <kato@ganko.eps.nagoya-u.ac.jp> Dept. Earth Planet. Sci., Nagoya Univ., Nagoya, 464-01, Japan PGP public key: finger kato@eclogite.eps.nagoya-u.ac.jp ------------------- Powered by FreeBSD(98) -------------------
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199708131720.CAA03222>