• Andreas Gruenbacher's avatar
    gfs2: Upgrade shared glocks for atime updates · 82e938bd
    Andreas Gruenbacher authored
    Commit 20f82999 ("gfs2: Rework read and page fault locking") lifted
    the glock lock taking from the low-level ->readpage and ->readahead
    address space operations to the higher-level ->read_iter file and
    ->fault vm operations.  The glocks are still taken in LM_ST_SHARED mode
    only.  On filesystems mounted without the noatime option, ->read_iter
    sometimes needs to update the atime as well, though.  Right now, this
    leads to a failed locking mode assertion in gfs2_dirty_inode.
    
    Fix that by introducing a new update_time inode operation.  There, if
    the glock is held non-exclusively, upgrade it to an exclusive lock.
    Reported-by: default avatarAlexander Aring <aahringo@redhat.com>
    Fixes: 20f82999 ("gfs2: Rework read and page fault locking")
    Cc: stable@vger.kernel.org # v5.8+
    Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
    82e938bd
inode.c 50.7 KB