[Cbe-oss-dev] [PATCH] spufs: Fix bitrot of the SPU mmap facility (#2)

Christoph Hellwig hch at lst.de
Sat Feb 10 01:56:20 EST 2007


On Fri, Feb 09, 2007 at 04:52:10PM +1100, Benjamin Herrenschmidt wrote:
> spufs: Fix bitrot of the SPU mmap facility
> 
> It looks like we've had some serious bitrot there mostly due to tracking
> of address_space's of mmap'ed files getting out of sync with the actual
> mmap code. The mfc, mss and psmap were not tracked properly and thus
> not invalidated on context switches (oops !)
> 
> I also removed the various file->f_mapping = inode->i_mapping;
> assignments that were done in the other open() routines since that
> is already done for us by __dentry_open.
> 
> One improvement we might want to do later is to assign the various
> ctx-> fields at mmap time instead of file open/close time so that we
> don't call unmap_mapping_range() on thing that have not been mmap'ed
> 
> Finally, I added some smp_wmb's after assigning the ctx-> fields to make
> sure they are visible to other CPUs. I don't think this is really
> necessary as I suspect locking in the fs layer will make that happen
> anyway but better safe than sorry.


Looks good to me.



More information about the Linuxppc-dev mailing list