• Joel Becker's avatar
    ocfs2_dlmfs: Use poll() to signify BASTs. · 65b6f340
    Joel Becker authored
    o2dlm's userspace filesystem is an easy way to use the DLM from
    userspace.  It is intentionally simple. For example, it does not allow
    for asynchronous behavior or lock conversion.  This is intentional to
    keep the interface simple.
    
    Because there is no asynchronous notification, there is no way for a
    process holding a lock to know another node needs the lock.  This is the
    number one complaint of ocfs2_dlmfs users.  Turns out, we can solve this
    very easily.  We add poll() support to ocfs2_dlmfs.  When a BAST is
    received, the lock's file descriptor will receive POLLIN.
    
    This is trivial to implement.  Userdlm already has an appropriate
    waitqueue, and the lock knows when it is blocked.
    
    We add the "bast" capability to tell userspace this is available.
    Signed-off-by: default avatarJoel Becker <joel.becker@oracle.com>
    Acked-by: default avatarMark Fasheh <mfasheh@suse.com>
    Signed-off-by: default avatarJoel Becker <joel.becker@oracle.com>
    65b6f340
dlmfs.c 16.7 KB