Commit Graph

2 Commits

Author SHA1 Message Date
Mark Fasheh
08bf1fea79 dlm: Give fs/dlm the notion of ranges
Using the new interval tree code we add a tree for each lock status list to
efficiently track ranged requests. Internally, most operations on a
resources lock status list (granted, waiting, converting) then are turned
into operations within a given range.

There is no API change other than a new call, dlm_lock_range() and a new
structure, 'struct dlm_key' to define our range endpoints. Keys can have
arbitrary lengths and are compared via memcmp. A ranged blocking ast type is
defined so that users of dlm_lock_range() can know which range they are
blocking.

A rudimentary test, dlmtest.ko is included.

TODO:
 - Update userspace entry points, need to add one for new lock call
 - Manage backwards compatibility with network protocol

Signed-off-by: Mark Fasheh <mfasheh@versity.com>
2017-06-23 15:07:10 -05:00
Mark Fasheh
dfc220ad6f Import fs/dlm/* from linux-3.10.0-327.36.1.el7
Also wire it into the build system. We have to figure out how to get scoutfs
pulling in the right headers but that can wait until we have something more
usable.

Signed-off-by: Mark Fasheh <mfasheh@versity.com>
2017-06-08 18:10:40 -05:00