2008-08-28 02:46 -!- cdk(~chinmay@121.246.36.77) has joined #tux3 2008-08-28 02:48 -!- cdk(~chinmay@121.246.36.77) has left #tux3 2008-08-28 03:12 -!- pgquiles(~pgquiles@189.Red-81-44-176.dynamicIP.rima-tde.net) has joined #tux3 2008-08-28 12:02 wow, time flies. It's already sk8 oclock 2008-08-28 12:14 hmm, does the root directory have a dirent? 2008-08-28 12:15 I don't think it does 2008-08-28 12:24 ACTION starts to draft the lkml post for next week 2008-08-28 16:19 simplifying assumption: inode attributes are always encoded in the same order 2008-08-28 16:19 I wonder if this makes things simpler 2008-08-28 16:19 hmm 2008-08-28 16:19 maybe random order is simpler 2008-08-28 16:19 always insert new attributes at the end of the list 2008-08-28 16:21 so updating attributes is a 3 step process: 0) figure out total size of attributes and old size then expand or shrink inode as necessary 1) remove attributes no longer used 2) insert new attributes at end of list 3) rewrite any attributes that changed 2008-08-28 16:21 that's 3 steps counting from 0 ;-) 2008-08-28 16:21 bh, there? 2008-08-28 16:34 let's try this algorithm: 2008-08-28 16:34 / for each attribute from bottom to top 2008-08-28 16:34 / if the attribute changed 2008-08-28 16:34 / encode new attribute 2008-08-28 16:34 / else unless the attribute is dropped 2008-08-28 16:34 / copy old attribute 2008-08-28 16:34 / for each new attribute 2008-08-28 16:34 / encode new attribute 2008-08-28 16:35 with a small optimization to avoid doing anything if the attribute neither has to be change or moved 2008-08-28 16:47 oh, slight mistake 2008-08-28 16:47 can't shrink the inode until after decoding the attributes 2008-08-28 16:48 iattr.c:218: warning: format '%i' expects type 'int', but argument 2 has type 'long int' 2008-08-28 16:48 should be %ti 2008-08-28 16:48 ah 2008-08-28 16:49 hm you want to copy all the attributes instead of change in place? 2008-08-28 16:49 not really 2008-08-28 16:49 but for a first cut maybe it's easiest 2008-08-28 16:49 lame 2008-08-28 16:50 you can optimize it 2008-08-28 16:50 heh ok, i think it will be less code to change in place 2008-08-28 16:50 I doubt it, but show me 2008-08-28 16:50 the lame version should be working sometime later today 2008-08-28 16:51 well then i wont get to optimize it until next week 2008-08-28 16:51 ACTION is not bringing a laptop on the motorcycle 2008-08-28 16:51 incentive for you to get back with your fingers intact 2008-08-28 16:51 I'll write it especially lamely to that end 2008-08-28 16:52 the %ti warning doesn't show up on 32 bit apparently 2008-08-28 16:53 yeah since the size matches i guess 2008-08-28 16:54 those unpack and repack ops are really efficient by the way 2008-08-28 16:54 they translate into just a couple of asm instructions most of the time 2008-08-28 16:54 once declared inline 2008-08-28 17:01 weekend reading material: http://students.cs.byu.edu/~cs460ta/cs460/labs/pthreads.html 2008-08-28 17:07 wow it's sk8 oclock again 2008-08-28 17:40 -!- olgagirl(~olgagirl@ANantes-257-1-135-233.w90-32.abo.wanadoo.fr) has joined #tux3 2008-08-28 19:12 what's with these racy nicks from france? 2008-08-28 19:34 -!- lafille(~lafille@ANantes-257-1-135-233.w90-32.abo.wanadoo.fr) has joined #tux3 2008-08-28 19:56 cool, everything also works with 256 byte blocks 2008-08-28 19:56 including writing an exabyte sparse file 2008-08-28 23:18 -!- MaZe(~MaZe@c-24-6-86-168.hsd1.ca.comcast.net) has joined #tux3 2008-08-28 23:45 -!- konrad(~konrad@c-24-16-77-169.hsd1.mn.comcast.net) has joined #tux3