Whamcloud - gitweb
Branch b1_4
Don't get ll_inode_size_lock() in ll_update_inode() as this can be called
with inode_lock (spinlock) held and deadlock. This was protecting the
setting of lli_smd to prevent ll_inode_size_unlock() from inconsistently
calling lov_stripe_unlock() when it was never locked because lli_smd changed
since ll_inode_size_lock() was called.
We now avoid this race by only ever calling ll_inode_size_lock() with
lli_smd already set, or with "lock_lsm = 0" so we don't care if it changes
between lock and unlock. This makes sense in any case, because if there is
no lli_smd we shouldn't be doing glimpse/enqueue on the OSTs anyways.
b=9547
r=nikita