Commit ee7075d45f57f90a42e61e016562ce8065668201
Exists in
smarc-imx_3.14.28_1.0.0_ga
and in
1 other branch
Merge tag 'dm-3.11-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
Pull device mapper fix from Mike Snitzer: "A patch to fix dm-cache-policy-mq's remove_mapping() conflict with sparc32" * tag 'dm-3.11-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: dm cache: avoid conflicting remove_mapping() in mq policy
Showing 1 changed file Side-by-side Diff
drivers/md/dm-cache-policy-mq.c
... | ... | @@ -959,23 +959,21 @@ |
959 | 959 | return r; |
960 | 960 | } |
961 | 961 | |
962 | -static void remove_mapping(struct mq_policy *mq, dm_oblock_t oblock) | |
962 | +static void mq_remove_mapping(struct dm_cache_policy *p, dm_oblock_t oblock) | |
963 | 963 | { |
964 | - struct entry *e = hash_lookup(mq, oblock); | |
964 | + struct mq_policy *mq = to_mq_policy(p); | |
965 | + struct entry *e; | |
965 | 966 | |
967 | + mutex_lock(&mq->lock); | |
968 | + | |
969 | + e = hash_lookup(mq, oblock); | |
970 | + | |
966 | 971 | BUG_ON(!e || !e->in_cache); |
967 | 972 | |
968 | 973 | del(mq, e); |
969 | 974 | e->in_cache = false; |
970 | 975 | push(mq, e); |
971 | -} | |
972 | 976 | |
973 | -static void mq_remove_mapping(struct dm_cache_policy *p, dm_oblock_t oblock) | |
974 | -{ | |
975 | - struct mq_policy *mq = to_mq_policy(p); | |
976 | - | |
977 | - mutex_lock(&mq->lock); | |
978 | - remove_mapping(mq, oblock); | |
979 | 977 | mutex_unlock(&mq->lock); |
980 | 978 | } |
981 | 979 |