[2.5-BK-PATCH] NTFS 2.0.9 update

Anton Altaparmakov (aia21@cantab.net)
Wed, 19 Jun 2002 11:33:25 +0100 (BST)


Linus, please do a

bk pull http://linux-ntfs.bkbits.net/ntfs-tng-2.5

Thanks! This is a small update to ntfs, mostly just to remove the compile
warnings generated by the now unused variables after Rusty Russell's changes.
And a few other bits and pieces (just cleanups).

The only code change is a micro optimization in the decompression engine
(thanks to Rusty for spotting it).

Best regards,

Anton

-- 
Anton Altaparmakov <aia21 at cantab.net> (replace at with @)
Linux NTFS maintainer / IRC: #ntfs on irc.openprojects.net
WWW: http://linux-ntfs.sf.net/, http://www-stu.christs.cam.ac.uk/~aia21/

===================================================================

This will update the following files:

Documentation/filesystems/ntfs.txt | 6 ++++++ fs/ntfs/ChangeLog | 13 ++++++++++++- fs/ntfs/Makefile | 2 +- fs/ntfs/compress.c | 21 ++++++++++++--------- fs/ntfs/dir.c | 11 ++++++----- fs/ntfs/layout.h | 3 +-- fs/ntfs/namei.c | 5 +++-- 7 files changed, 41 insertions(+), 20 deletions(-)

through these ChangeSets:

<aia21@cantab.net> (02/06/19 1.548) NTFS: 2.0.9 release. Decompression engine now uses a single buffer and other cleanups. - Remove unused variables left over after Rusty's patch to the decompression engine. - Change buffer size in ntfs_readdir()/ntfs_filldir() to use NLS_MAX_CHARSET_SIZE. - Miscellaneous minor cleanups to comments.

<aia21@cantab.net> (02/06/19 1.549) NTFS: Fix typo.

diff -Nru a/Documentation/filesystems/ntfs.txt b/Documentation/filesystems/ntfs.txt --- a/Documentation/filesystems/ntfs.txt Wed Jun 19 11:27:29 2002 +++ b/Documentation/filesystems/ntfs.txt Wed Jun 19 11:27:29 2002 @@ -247,6 +247,12 @@ Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog. +2.0.9: + - Change decompression engine to use a single buffer. This should not + affect performance except perhaps on the most heavy i/o on SMP + systems when accessing multiple compressed files from multiple + devices simultaneously. + - Minor updates and cleanups. 2.0.8: - Remove now obsolete show_inodes and posix mount option(s). - Restore show_sys_files mount option. diff -Nru a/fs/ntfs/ChangeLog b/fs/ntfs/ChangeLog --- a/fs/ntfs/ChangeLog Wed Jun 19 11:27:29 2002 +++ b/fs/ntfs/ChangeLog Wed Jun 19 11:27:29 2002 @@ -23,6 +23,17 @@ them cleaner and make code reuse easier. - Want to use dummy inodes for address space i/o. +2.0.9 - Decompression engine now uses a single buffer and other cleanups. + + - Change decompression engine to use a single buffer protected by a + spin lock instead of per-CPU buffers. (Rusty Russel) + - Switch to using the new KM_BIO_SRC_IRQ for atomic kmaps. (Andrew + Morton) + - Change buffer size in ntfs_readdir()/ntfs_filldir() to use + NLS_MAX_CHARSET_SIZE which makes the buffers almost 1kiB each but + it also makes everything safer so it is a good thing. + - Miscellaneous minor cleanups to comments. + 2.0.8 - Major updates for handling of case sensitivity and dcache aliasing. Big thanks go to Al Viro and other inhabitants of #kernel for investing diff -Nru a/fs/ntfs/Makefile b/fs/ntfs/Makefile --- a/fs/ntfs/Makefile Wed Jun 19 11:27:29 2002 +++ b/fs/ntfs/Makefile Wed Jun 19 11:27:29 2002 @@ -5,7 +5,7 @@ ntfs-objs := aops.o attrib.o compress.o debug.o dir.o file.o inode.o mft.o \ mst.o namei.o super.o sysctl.o time.o unistr.o upcase.o -EXTRA_CFLAGS = -DNTFS_VERSION=\"2.0.8\" +EXTRA_CFLAGS = -DNTFS_VERSION=\"2.0.9\" ifeq ($(CONFIG_NTFS_DEBUG),y) EXTRA_CFLAGS += -DDEBUG diff -Nru a/fs/ntfs/compress.c b/fs/ntfs/compress.c --- a/fs/ntfs/compress.c Wed Jun 19 11:27:29 2002 +++ b/fs/ntfs/compress.c Wed Jun 19 11:27:29 2002 @@ -50,11 +50,13 @@ } ntfs_compression_constants; /** - * ntfs_compression_buffer - one buffer for the decompression engine. + * ntfs_compression_buffer - one buffer for the decompression engine */ static u8 *ntfs_compression_buffer = NULL; -/* This spinlock which protects it */ +/** + * ntfs_cb_lock - spinlock which protects ntfs_compression_buffer + */ static spinlock_t ntfs_cb_lock = SPIN_LOCK_UNLOCKED; /** @@ -66,8 +68,6 @@ */ int allocate_compression_buffers(void) { - int i, j; - BUG_ON(ntfs_compression_buffer); ntfs_compression_buffer = vmalloc(NTFS_MAX_CB_SIZE); @@ -83,8 +83,6 @@ */ void free_compression_buffers(void) { - int i; - BUG_ON(!ntfs_compression_buffer); vfree(ntfs_compression_buffer); ntfs_compression_buffer = NULL; @@ -592,7 +590,8 @@ /* * Get the compression buffer. We must not sleep any more - * until we are finished with it. */ + * until we are finished with it. + */ spin_lock(&ntfs_cb_lock); cb = ntfs_compression_buffer; @@ -668,7 +667,10 @@ if (page) memset(page_address(page) + cur_ofs, 0, cb_max_ofs - cur_ofs); - cb_pos += cb_max_ofs - cur_ofs; + /* + * No need to update cb_pos at this stage: + * cb_pos += cb_max_ofs - cur_ofs; + */ cur_ofs = cb_max_ofs; } } else if (vcn == start_vcn) { @@ -742,7 +744,8 @@ cb_pos, cb_size - (cb_pos - cb)); /* * We can sleep from now on, lock already dropped by - * ntfs_decompress. */ + * ntfs_decompress(). + */ if (err) { ntfs_error(vol->sb, "ntfs_decompress() failed in inode " "0x%Lx with error code %i. Skipping " diff -Nru a/fs/ntfs/dir.c b/fs/ntfs/dir.c --- a/fs/ntfs/dir.c Wed Jun 19 11:27:29 2002 +++ b/fs/ntfs/dir.c Wed Jun 19 11:27:29 2002 @@ -995,10 +995,10 @@ * @ie: current index entry * @name: buffer to use for the converted name * @dirent: vfs filldir callback context - * filldir: vfs filldir callback + * @filldir: vfs filldir callback * - * Convert the Unicode name to the loaded NLS and pass it to - * the filldir callback. + * Convert the Unicode @name to the loaded NLS and pass it to the @filldir + * callback. */ static inline int ntfs_filldir(ntfs_volume *vol, struct file *filp, ntfs_inode *ndir, const INDEX_TYPE index_type, @@ -1033,7 +1033,7 @@ } name_len = ntfs_ucstonls(vol, (uchar_t*)&ie->key.file_name.file_name, ie->key.file_name.file_name_length, &name, - NTFS_MAX_NAME_LEN * 3 + 1); + NTFS_MAX_NAME_LEN * NLS_MAX_CHARSET_SIZE + 1); if (name_len <= 0) { ntfs_debug("Skipping unrepresentable file."); return 0; @@ -1126,7 +1126,8 @@ * Allocate a buffer to store the current name being processed * converted to format determined by current NLS. */ - name = (u8*)kmalloc(NTFS_MAX_NAME_LEN * 3 + 1, GFP_NOFS); + name = (u8*)kmalloc(NTFS_MAX_NAME_LEN * NLS_MAX_CHARSET_SIZE + 1, + GFP_NOFS); if (!name) { err = -ENOMEM; goto put_unm_err_out; diff -Nru a/fs/ntfs/layout.h b/fs/ntfs/layout.h --- a/fs/ntfs/layout.h Wed Jun 19 11:27:29 2002 +++ b/fs/ntfs/layout.h Wed Jun 19 11:27:29 2002 @@ -948,8 +948,7 @@ data attribute. NOTE: Is a multiple of the cluster size. */ /* 30*/ s64 data_size; /* Byte size of actual data in data - attribute. NOTE: Only present when - lowest_vcn is 0. */ + attribute. */ /* 38*/ FILE_ATTR_FLAGS file_attributes; /* Flags describing the file. */ /* 3c*/ union { /* 3c*/ struct { diff -Nru a/fs/ntfs/namei.c b/fs/ntfs/namei.c --- a/fs/ntfs/namei.c Wed Jun 19 11:27:29 2002 +++ b/fs/ntfs/namei.c Wed Jun 19 11:27:29 2002 @@ -235,8 +235,9 @@ } nls_name.hash = full_name_hash(nls_name.name, nls_name.len); - // FIXME: Do we need dcache_lock or dparent_lock here or is the - // fact that i_sem is held on the parent inode sufficient? (AIA) + /* + * Note: No need for dparent_lock as i_sem is held on the parent inode. + */ /* Does a dentry matching the nls_name exist already? */ real_dent = d_lookup(dent->d_parent, &nls_name); diff -Nru a/fs/ntfs/ChangeLog b/fs/ntfs/ChangeLog --- a/fs/ntfs/ChangeLog Wed Jun 19 11:27:30 2002 +++ b/fs/ntfs/ChangeLog Wed Jun 19 11:27:30 2002 @@ -26,7 +26,7 @@ 2.0.9 - Decompression engine now uses a single buffer and other cleanups. - Change decompression engine to use a single buffer protected by a - spin lock instead of per-CPU buffers. (Rusty Russel) + spin lock instead of per-CPU buffers. (Rusty Russell) - Switch to using the new KM_BIO_SRC_IRQ for atomic kmaps. (Andrew Morton) - Change buffer size in ntfs_readdir()/ntfs_filldir() to use

===================================================================

This BitKeeper patch contains the following changesets: aia21@cantab.net|ChangeSet|20020619102354|24989 aia21@cantab.net|ChangeSet|20020619094853|24993 aia21@cantab.net|ChangeSet|20020619080624|25748 aia21@cantab.net|ChangeSet|20020618221226|05503 aia21@cantab.net|ChangeSet|20020612170720|56511 aia21@cantab.net|ChangeSet|20020610011304|45406 aia21@cantab.net|ChangeSet|20020609060851|25935 aia21@cantab.net|ChangeSet|20020606195445|09279 aia21@cantab.net|ChangeSet|20020605191906|36417 aia21@cantab.net|ChangeSet|20020603073201|20682 ## Wrapped with gzip_uu ##

begin 664 bkpatch17656 M'XL(`))<$#T``]U::6_;2!+]+/V*QLR'S;&B^^0U\,*.[<P8B9VLG0P&BP!" MBVQ)A"E2X&''"_[XK6Y2DG4P(\G18"=Q(.I@57?7J^-523^CRW._4Z39O8S# M_$06XSA-K"*323Y1A;2"=%*=C64R4K>JJ"C&%/X$<1@6=D5LS)TJ("$ADA,5 M8LI=FW=_1I]SE?D=&4E*X-5O:5[XG4`FA1Q8B2K@K9LTA;>.RCP[RK/@J$A& M77CWHRR",;I76>YWB,7F[Q2/4^5W;BY^_?S^]*;;/3Y&\RVAX^/N]]W]7-LX MG:AOZ[(QPX1Q02N"'0=WSQ&Q.&$6L0C"]`C;1Y@A[/J,^IB\QL3'&!FCG"R, M@5YCU,/=-^C[GN*L&Z`KE8T46BSES^T]N(NCI/S:HY9`45*D&V_2H$1K^UW= MB:`>Q<3#;L6%YXAM)!C!!'L4K$8YV4;"QH3`@3&N.(7UNN\0O.?2[M7.DA\7 MGM/M[?BOV^T6691$)W<J2U1L!9G,QU$RLM)LM+ZN(#8LZ534%EC4GL$=2RP\ M0\`A?.+YV/Y!/4-'A\/`.:H:K7>(V9PX6Z&V+/E<U':):!MPXX17X*".-\=- M!_4,.%L#)[C/Q0\+G"`>A+1=U8"]0\86V^"V+/A7XN9AH0U84>&Q1;Q1B],9 M;A["C@_96/RHJ5@[KR<X%XWS0IHTQM@&N&7)9P+WY\N!CV!7D'6T6(,6P?#$ M)\S'_&^*UB0"ZG*2#T=I,6YQ6>+H`EA1BID#$KOY.W$9I$FP(&8N"(<R5L%= M=*+NHSQ*D]Z]2HHR4WFK-!=Z:0?;WC[2(.Q4X#"<@G0VN3N1V<0RMM'ET"KO M-DO9%"JQX-@&YZRO5WM)/]-!IZI0V4DP+@<#ZT$61:RL*+1DN;8L`8\AG#F5 ML`4AM:,*9CGS:D`H(JX/B87BOZF?[AJL6T@`WR*$83Z'NK;>%GEH1?(O+"#$ MI9@S8E=80$09I`6W9RB[B#*?4)_^L&2-4.)@!P*LQ@HPTV;8!K)EP4.7#L") M$DJ7<7)F.$&-UXS:IW_7JC'?UE0EHS+ZDWU!U<:8,8XK['J.3N2)BN+!29`K MJTSR!TN%Y<:TIL5LJLN]L'<4<SE8`1-A[R@&]0+$&-WKD(0RW0UPZ!CWDV>< M>]"+,4[VDJ=@**BUM@U=_FZ%&H2Y$&!J:CM"%^I!D,4GF0K'LF@3$,3%L%O! M/;[[:I`X&9C*QLZNG,((.]#[0-_*74,?]?7J.4H.G@X\[&*;SI:KTX&[2`<$ M^QPH/VM-!\ZATL'UI[>W/J(6MCR4J5A)B!)TKD#=%(B59ED(O"]*%$K2!U3F M*D<2Y5$RBA4:E,.ARI!,0@3L$9X%()^4T]P"Q3UTHR;IO4)E`E(ANI=9)`<Q MR,=J6"#X!"2'0'#039D7C__(T;2>HJ4(=*'PZ19`'6JV4:NN3SK;0![]5T'& M0DDQS/N9DF$892]>'IF7PRB.S4NM&#9B5%V_O^U?G?[1/_OM].;VXE/_]O(_ M%[7BJR@/5!S+1*5E#N0X21>GTAI@4Q,@G7!"\#ON>>R9KH,E[OX+O7E7#7.S MWR/8JQ54Q'.`8L`?@XCV*JSY1C7$WM`-AD-/#@#0`5LO>LM*YJX'S:Z@.E`Q M7U[L2MXI,)#:M)Y3#55`!L"@"0\Q&ZQ[Y;J:U15M(,/UBN=I4&K#R0+@/-(W MYX]YH2:U!JOX6FS8`^121V!;.7A(E3T(!VRPOHDM-"^VQ5W,*LY<Z$66#!'+ MQ[0LK/$F0]B52[#BMA<H%YB?E*3=$G,]3P8-#!H8PCW'7EYRYMX;T<9N91-. MAH'C2B=TN*1V^Z)/-"VR#:>P<<H=[BTO6SOK^W2T:56["H<V^!<!LZLA<X:\ M?=6%HA74,;3F*TZ=R(F*-AZ4TLKEKF+2\3PE0H&E:%]RIF;%N#K5>=LE87`` MP:HZ<.LD[#U)PL0'^BS:.1DY;!)^&WW5WR&D36YQGSO@6,LM!\2>8,H,]J[G MFJ\^_CPL]7<BWS$SK.._;680U"4>TYJ)YXIZFDKLU>*,VXNS?2B_^#P-90&U M\.E!T!!*TG*]UE,*D],^H%[V8/X#_A^WP&`/K[H$UT1VU^S`[W;FM3C<Q!GJ MFKO*&"ST:1SE*!^G91P"KRBZ'01<`.I-@:8J@P-.9!(HI+X&:FK>&DLHOZ!6 M,X-)FA=HK.3](XJ.4OWN[=5'K:$Y''H8JP3)(-!;249H4L9%-(7%9_L#,F)L M@899.IE_K#6$ZCX",=BM?K<F`?&CI4]Y9:A`:0#)#>59D!WM[VNAT;CWGK&W M[LTML2>HR6H<F#MSW)I:>LO,DGB^H.U)[6!9K?'>P(C&Z<CD-5T;5MQT[61[ M>:6`_%U[)="XYQ/8+_NY-IIF:0%^##XV>$32N.44J&F<!G=`4<%!):PUU#[= M._OXN9'*+?3"L&#-A7,5O]2+WSY$#1\NC1]KWT_4`WIWU7]S^:%_>W/6O[SY MMTD'LD@G48#N)A`FH.HT"3/UH->^2K,B35X^.<L^E+FSF3%#H$6PP0FPO]SL MKCD,DK&)47(7O4%*PBV#TH1X5,!'>=I(*.@`'@O]U23*I=E3JN^(-#ZC-`V1 M^:P)OFU9^9<-/&!+QF(B9YT.?"-R4(\<)'"6B(`NJ`<(F',*)X2PT8_[.2EX MZ=/$-VL"5O+>3BU&.W;++8:@-G'@ZIH6H_YF1I!=DMZAH&MRGOYQB,X5X)LF M)1DD33?4`N7L?/L@Z6H@]</%'Y]N3OMG;]^?_GJ+CE'O7//*_N\7-[>7'ZZ/ MO_QDMO+EIR78%LW#"G"[]B?=3/O&B7X,TFRJ+:BG;.U-"G15`"/T1J[-9E]A M+PU(.?5)^R";4-3S#C,A?9I?K-D8PU2/E5%&S=1UC]4"Z^+4^P`KF$;6/*)7 M=:I^4HCZ32KO`06:YW5=#=;&)TW)`H6.4>@@UCUZ]6JA=-`WH=\S:<`\K5-[ M4\SRMK5!PU'WW/80!2^T]:/PA%D"+A3RRBLP61'%Z`$*9::`=B51/@8+0FD; M0[*W]"U:@T.TE+[P;J?3.7JE'T'Z.H62!_?K0M2PB4%_FD*)*'1Y`*96R)'R MZ[L[S6>OC_5=$_FUGPYS.%109OK9+_5=L)S#S2;U!3;9F9EA8;,7+ZUN?>_3 M4#%3E94HV6%<TY[<GHQK%KT(I=#<UIG-WB$L!.KQ[QX5*S%1T]^:3S"-S3?8 M`6`TB$8C<$T@`76A-U'#7+LU&1I[[!,PGF=R87T!6$\:*N-W[L$3FA<HD'$\ MD,%=]YP`4N`"E_K[/+B"Q%F:0.XN3`Q]3J(@#14ZT7.'V5PR3F4(#@DG-E:8 MRCS7K*7Y=+:@5C5;QH)U2%UMS15<SB@\1B]*]]5+(&TQA-P+DZNU$:]/KR[Z M[R^NM?MOLNMK1/ZI7?G7MQ_[UQ_>WK[\Y1N<9V42V(R%C/&-:SG_#T7SU`SQ M]73R>SL$1*1M#%]?P6J[F%E;]DG\SX9[*RE@M]EA.U3+L\,%Q2&N0W@]E.#+ MO\IC/FG_<1>@10]9'FO*#4'U5<=S/>!L@6]VLKU"6NC(O`2:7N,':1E!]B^R M"/*)LE9S=#,B7(%HI_EC.T)+\\=%XXUM*'<&(&A"MP>('0J@6=]=(V2ATQC] M'F6Z2TJ&43:![#5Y-,W5G>ZOT(N>;WZJ2EM93'/NO;H,YFKX*/.`<YBZ;JIZ MH?QY;=>4)9P"/4B*FH9(R*C]7$UT[1BK.)P-?NI[H$&!I-PPA_EOKX.Q"N[R 3<G(<\,`5H9+=_P%FS`89,RX````` ` end - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/