Whamcloud - gitweb
fix up file size and cache mechanisms to account for the disconnect between
acquiring a file region extent and getting 0..N callbacks for obd locks that
the acquiry generated.
- truncate_inode_pages(,0) could race with dirtying and lose data. when a lock
is canceled we now purge/invalidate the (striped) pages that were covered by
the (lov->obd) lock
- remove the getattr flag business and instead do getattrs around every lock
acquiry. this brings us closer to how things will behave when we return
file size with locks, but it will slow things down until then.
- maintain an rbtree of extents which record the page offsets that are dirty
in the page cache. for now it helps us decide if we should trust getattr.
in the future it will help purging and the write space reservation.
- always round extents to page size in osc_enqueue
- while I'm in here, get rid of the ISBLK stuff in _file_write and let
generic_file_write set ppos to i_size under the i_sem
this has passed tests under a large lov with /tmp backing, but do keep an eye
out for data/size inconsistency problems.