1*4882a593Smuzhiyun[LICENSING] 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunReiserFS is hereby licensed under the GNU General 4*4882a593SmuzhiyunPublic License version 2. 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunSource code files that contain the phrase "licensing governed by 7*4882a593Smuzhiyunreiserfs/README" are "governed files" throughout this file. Governed 8*4882a593Smuzhiyunfiles are licensed under the GPL. The portions of them owned by Hans 9*4882a593SmuzhiyunReiser, or authorized to be licensed by him, have been in the past, 10*4882a593Smuzhiyunand likely will be in the future, licensed to other parties under 11*4882a593Smuzhiyunother licenses. If you add your code to governed files, and don't 12*4882a593Smuzhiyunwant it to be owned by Hans Reiser, put your copyright label on that 13*4882a593Smuzhiyuncode so the poor blight and his customers can keep things straight. 14*4882a593SmuzhiyunAll portions of governed files not labeled otherwise are owned by Hans 15*4882a593SmuzhiyunReiser, and by adding your code to it, widely distributing it to 16*4882a593Smuzhiyunothers or sending us a patch, and leaving the sentence in stating that 17*4882a593Smuzhiyunlicensing is governed by the statement in this file, you accept this. 18*4882a593SmuzhiyunIt will be a kindness if you identify whether Hans Reiser is allowed 19*4882a593Smuzhiyunto license code labeled as owned by you on your behalf other than 20*4882a593Smuzhiyununder the GPL, because he wants to know if it is okay to do so and put 21*4882a593Smuzhiyuna check in the mail to you (for non-trivial improvements) when he 22*4882a593Smuzhiyunmakes his next sale. He makes no guarantees as to the amount if any, 23*4882a593Smuzhiyunthough he feels motivated to motivate contributors, and you can surely 24*4882a593Smuzhiyundiscuss this with him before or after contributing. You have the 25*4882a593Smuzhiyunright to decline to allow him to license your code contribution other 26*4882a593Smuzhiyunthan under the GPL. 27*4882a593Smuzhiyun 28*4882a593SmuzhiyunFurther licensing options are available for commercial and/or other 29*4882a593Smuzhiyuninterests directly from Hans Reiser: hans@reiser.to. If you interpret 30*4882a593Smuzhiyunthe GPL as not allowing those additional licensing options, you read 31*4882a593Smuzhiyunit wrongly, and Richard Stallman agrees with me, when carefully read 32*4882a593Smuzhiyunyou can see that those restrictions on additional terms do not apply 33*4882a593Smuzhiyunto the owner of the copyright, and my interpretation of this shall 34*4882a593Smuzhiyungovern for this license. 35*4882a593Smuzhiyun 36*4882a593SmuzhiyunFinally, nothing in this license shall be interpreted to allow you to 37*4882a593Smuzhiyunfail to fairly credit me, or to remove my credits, without my 38*4882a593Smuzhiyunpermission, unless you are an end user not redistributing to others. 39*4882a593SmuzhiyunIf you have doubts about how to properly do that, or about what is 40*4882a593Smuzhiyunfair, ask. (Last I spoke with him Richard was contemplating how best 41*4882a593Smuzhiyunto address the fair crediting issue in the next GPL version.) 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun[END LICENSING] 44*4882a593Smuzhiyun 45*4882a593SmuzhiyunReiserfs is a file system based on balanced tree algorithms, which is 46*4882a593Smuzhiyundescribed at https://reiser4.wiki.kernel.org/index.php/Main_Page 47*4882a593Smuzhiyun 48*4882a593SmuzhiyunStop reading here. Go there, then return. 49*4882a593Smuzhiyun 50*4882a593SmuzhiyunSend bug reports to yura@namesys.botik.ru. 51*4882a593Smuzhiyun 52*4882a593Smuzhiyunmkreiserfs and other utilities are in reiserfs/utils, or wherever your 53*4882a593SmuzhiyunLinux provider put them. There is some disagreement about how useful 54*4882a593Smuzhiyunit is for users to get their fsck and mkreiserfs out of sync with the 55*4882a593Smuzhiyunversion of reiserfs that is in their kernel, with many important 56*4882a593Smuzhiyundistributors wanting them out of sync.:-) Please try to remember to 57*4882a593Smuzhiyunrecompile and reinstall fsck and mkreiserfs with every update of 58*4882a593Smuzhiyunreiserfs, this is a common source of confusion. Note that some of the 59*4882a593Smuzhiyunutilities cannot be compiled without accessing the balancing code 60*4882a593Smuzhiyunwhich is in the kernel code, and relocating the utilities may require 61*4882a593Smuzhiyunyou to specify where that code can be found. 62*4882a593Smuzhiyun 63*4882a593SmuzhiyunYes, if you update your reiserfs kernel module you do have to 64*4882a593Smuzhiyunrecompile your kernel, most of the time. The errors you get will be 65*4882a593Smuzhiyunquite cryptic if your forget to do so. 66*4882a593Smuzhiyun 67*4882a593SmuzhiyunReal users, as opposed to folks who want to hack and then understand 68*4882a593Smuzhiyunwhat went wrong, will want REISERFS_CHECK off. 69*4882a593Smuzhiyun 70*4882a593SmuzhiyunHideous Commercial Pitch: Spread your development costs across other OS 71*4882a593Smuzhiyunvendors. Select from the best in the world, not the best in your 72*4882a593Smuzhiyunbuilding, by buying from third party OS component suppliers. Leverage 73*4882a593Smuzhiyunthe software component development power of the internet. Be the most 74*4882a593Smuzhiyunaggressive in taking advantage of the commercial possibilities of 75*4882a593Smuzhiyundecentralized internet development, and add value through your branded 76*4882a593Smuzhiyunintegration that you sell as an operating system. Let your competitors 77*4882a593Smuzhiyunbe the ones to compete against the entire internet by themselves. Be 78*4882a593Smuzhiyunhip, get with the new economic trend, before your competitors do. Send 79*4882a593Smuzhiyunemail to hans@reiser.to. 80*4882a593Smuzhiyun 81*4882a593SmuzhiyunTo understand the code, after reading the website, start reading the 82*4882a593Smuzhiyuncode by reading reiserfs_fs.h first. 83*4882a593Smuzhiyun 84*4882a593SmuzhiyunHans Reiser was the project initiator, primary architect, source of all 85*4882a593Smuzhiyunfunding for the first 5.5 years, and one of the programmers. He owns 86*4882a593Smuzhiyunthe copyright. 87*4882a593Smuzhiyun 88*4882a593SmuzhiyunVladimir Saveljev was one of the programmers, and he worked long hours 89*4882a593Smuzhiyunwriting the cleanest code. He always made the effort to be the best he 90*4882a593Smuzhiyuncould be, and to make his code the best that it could be. What resulted 91*4882a593Smuzhiyunwas quite remarkable. I don't think that money can ever motivate someone 92*4882a593Smuzhiyunto work the way he did, he is one of the most selfless men I know. 93*4882a593Smuzhiyun 94*4882a593SmuzhiyunYura helps with benchmarking, coding hashes, and block pre-allocation 95*4882a593Smuzhiyuncode. 96*4882a593Smuzhiyun 97*4882a593SmuzhiyunAnatoly Pinchuk is a former member of our team who worked closely with 98*4882a593SmuzhiyunVladimir throughout the project's development. He wrote a quite 99*4882a593Smuzhiyunsubstantial portion of the total code. He realized that there was a 100*4882a593Smuzhiyunspace problem with packing tails of files for files larger than a node 101*4882a593Smuzhiyunthat start on a node aligned boundary (there are reasons to want to node 102*4882a593Smuzhiyunalign files), and he invented and implemented indirect items and 103*4882a593Smuzhiyununformatted nodes as the solution. 104*4882a593Smuzhiyun 105*4882a593SmuzhiyunKonstantin Shvachko, with the help of the Russian version of a VC, 106*4882a593Smuzhiyuntried to put me in a position where I was forced into giving control 107*4882a593Smuzhiyunof the project to him. (Fortunately, as the person paying the money 108*4882a593Smuzhiyunfor all salaries from my dayjob I owned all copyrights, and you can't 109*4882a593Smuzhiyunreally force takeovers of sole proprietorships.) This was something 110*4882a593Smuzhiyuncurious, because he never really understood the value of our project, 111*4882a593Smuzhiyunwhy we should do what we do, or why innovation was possible in 112*4882a593Smuzhiyungeneral, but he was sure that he ought to be controlling it. Every 113*4882a593Smuzhiyuninnovation had to be forced past him while he was with us. He added 114*4882a593Smuzhiyuntwo years to the time required to complete reiserfs, and was a net 115*4882a593Smuzhiyunloss for me. Mikhail Gilula was a brilliant innovator who also left 116*4882a593Smuzhiyunin a destructive way that erased the value of his contributions, and 117*4882a593Smuzhiyunthat he was shown much generosity just makes it more painful. 118*4882a593Smuzhiyun 119*4882a593SmuzhiyunGrigory Zaigralin was an extremely effective system administrator for 120*4882a593Smuzhiyunour group. 121*4882a593Smuzhiyun 122*4882a593SmuzhiyunIgor Krasheninnikov was wonderful at hardware procurement, repair, and 123*4882a593Smuzhiyunnetwork installation. 124*4882a593Smuzhiyun 125*4882a593SmuzhiyunJeremy Fitzhardinge wrote the teahash.c code, and he gives credit to a 126*4882a593Smuzhiyuntextbook he got the algorithm from in the code. Note that his analysis 127*4882a593Smuzhiyunof how we could use the hashing code in making 32 bit NFS cookies work 128*4882a593Smuzhiyunwas probably more important than the actual algorithm. Colin Plumb also 129*4882a593Smuzhiyuncontributed to it. 130*4882a593Smuzhiyun 131*4882a593SmuzhiyunChris Mason dived right into our code, and in just a few months produced 132*4882a593Smuzhiyunthe journaling code that dramatically increased the value of ReiserFS. 133*4882a593SmuzhiyunHe is just an amazing programmer. 134*4882a593Smuzhiyun 135*4882a593SmuzhiyunIgor Zagorovsky is writing much of the new item handler and extent code 136*4882a593Smuzhiyunfor our next major release. 137*4882a593Smuzhiyun 138*4882a593SmuzhiyunAlexander Zarochentcev (sometimes known as zam, or sasha), wrote the 139*4882a593Smuzhiyunresizer, and is hard at work on implementing allocate on flush. SGI 140*4882a593Smuzhiyunimplemented allocate on flush before us for XFS, and generously took 141*4882a593Smuzhiyunthe time to convince me we should do it also. They are great people, 142*4882a593Smuzhiyunand a great company. 143*4882a593Smuzhiyun 144*4882a593SmuzhiyunYuri Shevchuk and Nikita Danilov are doing squid cache optimization. 145*4882a593Smuzhiyun 146*4882a593SmuzhiyunVitaly Fertman is doing fsck. 147*4882a593Smuzhiyun 148*4882a593SmuzhiyunJeff Mahoney, of SuSE, contributed a few cleanup fixes, most notably 149*4882a593Smuzhiyunthe endian safe patches which allow ReiserFS to run on any platform 150*4882a593Smuzhiyunsupported by the Linux kernel. 151*4882a593Smuzhiyun 152*4882a593SmuzhiyunSuSE, IntegratedLinux.com, Ecila, MP3.com, bigstorage.com, and the 153*4882a593SmuzhiyunAlpha PC Company made it possible for me to not have a day job 154*4882a593Smuzhiyunanymore, and to dramatically increase our staffing. Ecila funded 155*4882a593Smuzhiyunhypertext feature development, MP3.com funded journaling, SuSE funded 156*4882a593Smuzhiyuncore development, IntegratedLinux.com funded squid web cache 157*4882a593Smuzhiyunappliances, bigstorage.com funded HSM, and the alpha PC company funded 158*4882a593Smuzhiyunthe alpha port. Many of these tasks were helped by sponsors other 159*4882a593Smuzhiyunthan the ones just named. SuSE has helped in much more than just 160*4882a593Smuzhiyunfunding.... 161*4882a593Smuzhiyun 162