OK, so I found the exact cause of the 2nd buffer problem. Surprisingly, the first patch I sent was exactly what is needed. Surprising because I didn't have a full handle on the problem so perhaps I got a bit lucky. The bug (the reason I asked you to drop the patch just now) was that the code previously did a get_bh on all bh's in a page, but I changed it to only put_bh the ones to be written. The minor fix for that was to only get_bh the buffer heads to be written. Exact problem is described in the patch changelog. Anyone who is feeling brave please review because I'm tired and have a headache from too much kernel debugging ;) Tested and seems to work. Doesn't seem to leak memory. Nick -- SUSE Labs, Novell Inc.