• Abhijith Das's avatar
    [GFS2] flocks from same process trip kernel BUG at fs/gfs2/glock.c:1118! · b4c20166
    Abhijith Das authored
    This patch adds a new flag to the gfs2_holder structure GL_FLOCK.
    It is set on holders of glocks representing flocks. This flag is
    checked in add_to_queue() and a process is permitted to queue more
    than one holder onto a glock if it is set. This solves the issue
    of a process not being able to do multiple flocks on the same file.
    Through a single descriptor, a process can now promote and demote
    flocks. Through multiple descriptors a process can now queue
    multiple flocks on the same file. There's still the problem of
    a process deadlocking itself (because gfs2 blocking locks are not
    interruptible) by queueing incompatible deadlock.
    Signed-off-by: default avatarAbhijith Das <adas@redhat.com>
    Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
glock.c 50.8 KB