• Bob Peterson's avatar
    GFS2: Check rs_free with rd_rsspin protection · 44f52122
    Bob Peterson authored
    For the last process to close a file opened for write, function
    gfs2_rsqa_delete was deleting the file's inode's block reservation
    out of the rgrp reservations tree. Then it was checking to make sure
    rs_free was 0, but it was performing the check outside the protection
    of rd_rsspin spin_lock. The rd_rsspin spin_lock protection is needed
    to prevent a race between the process freeing the reservation and
    another who is allocating a new set of blocks inside the same rgrp
    for the same inode, thus changing its value.
    Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
    44f52122
rgrp.c 68.6 KB