mirror of
https://github.com/versity/scoutfs.git
synced 2026-02-12 13:31:12 +00:00
scoutfs: use the dlm mode/levels directly
We intend to use more of the dlm lock levels. Let's use its modes directly so we don't have to maintain a mental map from differently named modes. Signed-off-by: Zach Brown <zab@versity.com>
This commit is contained in:
@@ -78,7 +78,7 @@ static int invalidate_caches(struct super_block *sb, int mode,
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (mode == SCOUTFS_LOCK_MODE_WRITE)
|
||||
if (mode == DLM_LOCK_EX)
|
||||
ret = scoutfs_item_invalidate(sb, start, end);
|
||||
|
||||
return ret;
|
||||
@@ -121,7 +121,7 @@ static void init_scoutfs_lock(struct super_block *sb, struct scoutfs_lock *lock,
|
||||
|
||||
RB_CLEAR_NODE(&lock->interval_node);
|
||||
lock->sb = sb;
|
||||
lock->mode = SCOUTFS_LOCK_MODE_IV;
|
||||
lock->mode = DLM_LOCK_IV;
|
||||
INIT_DELAYED_WORK(&lock->dc_work, scoutfs_downconvert_func);
|
||||
INIT_LIST_HEAD(&lock->lru_entry);
|
||||
|
||||
@@ -476,7 +476,7 @@ static void scoutfs_downconvert_func(struct work_struct *work)
|
||||
* invalidate based on what level we're downconverting to (PR,
|
||||
* NL).
|
||||
*/
|
||||
invalidate_caches(sb, SCOUTFS_LOCK_MODE_WRITE, lock->start, lock->end);
|
||||
invalidate_caches(sb, DLM_LOCK_EX, lock->start, lock->end);
|
||||
unlock_range(sb, lock);
|
||||
|
||||
spin_lock(&linfo->lock);
|
||||
@@ -489,7 +489,7 @@ static void scoutfs_downconvert_func(struct work_struct *work)
|
||||
* lock tree so in particular we have nobody in
|
||||
* scoutfs_lock_range concurrently trying to acquire a lock.
|
||||
*/
|
||||
if (lock->mode == SCOUTFS_LOCK_MODE_IV && lock->refcnt == 1 &&
|
||||
if (lock->mode == DLM_LOCK_IV && lock->refcnt == 1 &&
|
||||
list_empty(&lock->lru_entry)) {
|
||||
list_add_tail(&lock->lru_entry, &linfo->lru_list);
|
||||
linfo->lru_nr++;
|
||||
|
||||
@@ -25,12 +25,6 @@ struct scoutfs_lock {
|
||||
struct delayed_work dc_work;
|
||||
};
|
||||
|
||||
enum {
|
||||
SCOUTFS_LOCK_MODE_IV = DLM_LOCK_IV,
|
||||
SCOUTFS_LOCK_MODE_READ = DLM_LOCK_PR,
|
||||
SCOUTFS_LOCK_MODE_WRITE = DLM_LOCK_EX,
|
||||
};
|
||||
|
||||
int scoutfs_lock_range(struct super_block *sb, int mode,
|
||||
struct scoutfs_key_buf *start,
|
||||
struct scoutfs_key_buf *end,
|
||||
|
||||
@@ -2083,7 +2083,7 @@ static void scoutfs_net_server_func(struct work_struct *work)
|
||||
INIT_WORK(&sinf->listen_work, scoutfs_net_listen_func);
|
||||
INIT_WORK(&sinf->accept_work, scoutfs_net_accept_func);
|
||||
|
||||
ret = scoutfs_lock_range(sb, SCOUTFS_LOCK_MODE_WRITE, &listen_key,
|
||||
ret = scoutfs_lock_range(sb, DLM_LOCK_EX, &listen_key,
|
||||
&listen_key, &sinf->listen_lck);
|
||||
if (ret) {
|
||||
kfree(sinf);
|
||||
|
||||
@@ -284,10 +284,15 @@ DEFINE_EVENT(scoutfs_range_class, scoutfs_read_items,
|
||||
TP_ARGS(sb, start, end)
|
||||
);
|
||||
|
||||
#define lock_mode(mode) \
|
||||
__print_symbolic(mode, \
|
||||
{ SCOUTFS_LOCK_MODE_READ, "READ" }, \
|
||||
{ SCOUTFS_LOCK_MODE_WRITE, "WRITE" })
|
||||
#define lock_mode(mode) \
|
||||
__print_symbolic(mode, \
|
||||
{ DLM_LOCK_IV, "IV" }, \
|
||||
{ DLM_LOCK_NL, "NL" }, \
|
||||
{ DLM_LOCK_CR, "CR" }, \
|
||||
{ DLM_LOCK_CW, "CW" }, \
|
||||
{ DLM_LOCK_PR, "PR" }, \
|
||||
{ DLM_LOCK_PW, "PW" }, \
|
||||
{ DLM_LOCK_EX, "EX" })
|
||||
|
||||
DECLARE_EVENT_CLASS(scoutfs_lock_class,
|
||||
TP_PROTO(struct super_block *sb, struct scoutfs_lock *lck),
|
||||
|
||||
@@ -178,7 +178,7 @@ ssize_t scoutfs_getxattr(struct dentry *dentry, const char *name, void *buffer,
|
||||
goto out;
|
||||
}
|
||||
|
||||
ret = scoutfs_lock_range(sb, SCOUTFS_LOCK_MODE_READ, key, last, &lck);
|
||||
ret = scoutfs_lock_range(sb, DLM_LOCK_PR, key, last, &lck);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
@@ -289,7 +289,7 @@ static int scoutfs_xattr_set(struct dentry *dentry, const char *name,
|
||||
goto out;
|
||||
}
|
||||
|
||||
ret = scoutfs_lock_range(sb, SCOUTFS_LOCK_MODE_WRITE, key, last, &lck);
|
||||
ret = scoutfs_lock_range(sb, DLM_LOCK_EX, key, last, &lck);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
@@ -386,7 +386,7 @@ ssize_t scoutfs_listxattr(struct dentry *dentry, char *buffer, size_t size)
|
||||
xkey = key->data;
|
||||
xkey->name[0] = '\0';
|
||||
|
||||
ret = scoutfs_lock_range(sb, SCOUTFS_LOCK_MODE_READ, key, last, &lck);
|
||||
ret = scoutfs_lock_range(sb, DLM_LOCK_PR, key, last, &lck);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
@@ -469,7 +469,7 @@ int scoutfs_xattr_drop(struct super_block *sb, u64 ino)
|
||||
}
|
||||
|
||||
/* while we read to delete we need to writeback others */
|
||||
ret = scoutfs_lock_range(sb, SCOUTFS_LOCK_MODE_WRITE, key, last, &lck);
|
||||
ret = scoutfs_lock_range(sb, DLM_LOCK_EX, key, last, &lck);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user