diff options
author | Alexander Aring <aahringo@redhat.com> | 2021-11-02 22:17:21 +0300 |
---|---|---|
committer | David Teigland <teigland@redhat.com> | 2021-11-02 22:39:20 +0300 |
commit | 75d25ffe380a01b88cb3bf604a6b8dc5a562a2e5 (patch) | |
tree | a3d0b239a26a3209302976c66503015a50bacd6d /fs/dlm | |
parent | 9af5b8f0ead7cd90161b0555ed8e85ee38f79fa5 (diff) | |
download | linux-75d25ffe380a01b88cb3bf604a6b8dc5a562a2e5.tar.xz |
fs: dlm: allow create lkb with specific id range
This patch adds functionality to add a lkb with a specific id range.
Signed-off-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
Diffstat (limited to 'fs/dlm')
-rw-r--r-- | fs/dlm/lock.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/fs/dlm/lock.c b/fs/dlm/lock.c index feb2e94f5879..8b30c9d9e545 100644 --- a/fs/dlm/lock.c +++ b/fs/dlm/lock.c @@ -1180,7 +1180,8 @@ static void detach_lkb(struct dlm_lkb *lkb) } } -static int create_lkb(struct dlm_ls *ls, struct dlm_lkb **lkb_ret) +static int _create_lkb(struct dlm_ls *ls, struct dlm_lkb **lkb_ret, + int start, int end) { struct dlm_lkb *lkb; int rv; @@ -1201,7 +1202,7 @@ static int create_lkb(struct dlm_ls *ls, struct dlm_lkb **lkb_ret) idr_preload(GFP_NOFS); spin_lock(&ls->ls_lkbidr_spin); - rv = idr_alloc(&ls->ls_lkbidr, lkb, 1, 0, GFP_NOWAIT); + rv = idr_alloc(&ls->ls_lkbidr, lkb, start, end, GFP_NOWAIT); if (rv >= 0) lkb->lkb_id = rv; spin_unlock(&ls->ls_lkbidr_spin); @@ -1217,6 +1218,11 @@ static int create_lkb(struct dlm_ls *ls, struct dlm_lkb **lkb_ret) return 0; } +static int create_lkb(struct dlm_ls *ls, struct dlm_lkb **lkb_ret) +{ + return _create_lkb(ls, lkb_ret, 1, 0); +} + static int find_lkb(struct dlm_ls *ls, uint32_t lkid, struct dlm_lkb **lkb_ret) { struct dlm_lkb *lkb; |