.. | .. |
---|
1856 | 1856 | void dlm_scan_timeout(struct dlm_ls *ls) |
---|
1857 | 1857 | { |
---|
1858 | 1858 | struct dlm_rsb *r; |
---|
1859 | | - struct dlm_lkb *lkb; |
---|
| 1859 | + struct dlm_lkb *lkb = NULL, *iter; |
---|
1860 | 1860 | int do_cancel, do_warn; |
---|
1861 | 1861 | s64 wait_us; |
---|
1862 | 1862 | |
---|
.. | .. |
---|
1867 | 1867 | do_cancel = 0; |
---|
1868 | 1868 | do_warn = 0; |
---|
1869 | 1869 | mutex_lock(&ls->ls_timeout_mutex); |
---|
1870 | | - list_for_each_entry(lkb, &ls->ls_timeout, lkb_time_list) { |
---|
| 1870 | + list_for_each_entry(iter, &ls->ls_timeout, lkb_time_list) { |
---|
1871 | 1871 | |
---|
1872 | 1872 | wait_us = ktime_to_us(ktime_sub(ktime_get(), |
---|
1873 | | - lkb->lkb_timestamp)); |
---|
| 1873 | + iter->lkb_timestamp)); |
---|
1874 | 1874 | |
---|
1875 | | - if ((lkb->lkb_exflags & DLM_LKF_TIMEOUT) && |
---|
1876 | | - wait_us >= (lkb->lkb_timeout_cs * 10000)) |
---|
| 1875 | + if ((iter->lkb_exflags & DLM_LKF_TIMEOUT) && |
---|
| 1876 | + wait_us >= (iter->lkb_timeout_cs * 10000)) |
---|
1877 | 1877 | do_cancel = 1; |
---|
1878 | 1878 | |
---|
1879 | | - if ((lkb->lkb_flags & DLM_IFL_WATCH_TIMEWARN) && |
---|
| 1879 | + if ((iter->lkb_flags & DLM_IFL_WATCH_TIMEWARN) && |
---|
1880 | 1880 | wait_us >= dlm_config.ci_timewarn_cs * 10000) |
---|
1881 | 1881 | do_warn = 1; |
---|
1882 | 1882 | |
---|
1883 | 1883 | if (!do_cancel && !do_warn) |
---|
1884 | 1884 | continue; |
---|
1885 | | - hold_lkb(lkb); |
---|
| 1885 | + hold_lkb(iter); |
---|
| 1886 | + lkb = iter; |
---|
1886 | 1887 | break; |
---|
1887 | 1888 | } |
---|
1888 | 1889 | mutex_unlock(&ls->ls_timeout_mutex); |
---|
1889 | 1890 | |
---|
1890 | | - if (!do_cancel && !do_warn) |
---|
| 1891 | + if (!lkb) |
---|
1891 | 1892 | break; |
---|
1892 | 1893 | |
---|
1893 | 1894 | r = lkb->lkb_resource; |
---|
.. | .. |
---|
5241 | 5242 | |
---|
5242 | 5243 | static struct dlm_lkb *find_resend_waiter(struct dlm_ls *ls) |
---|
5243 | 5244 | { |
---|
5244 | | - struct dlm_lkb *lkb; |
---|
5245 | | - int found = 0; |
---|
| 5245 | + struct dlm_lkb *lkb = NULL, *iter; |
---|
5246 | 5246 | |
---|
5247 | 5247 | mutex_lock(&ls->ls_waiters_mutex); |
---|
5248 | | - list_for_each_entry(lkb, &ls->ls_waiters, lkb_wait_reply) { |
---|
5249 | | - if (lkb->lkb_flags & DLM_IFL_RESEND) { |
---|
5250 | | - hold_lkb(lkb); |
---|
5251 | | - found = 1; |
---|
| 5248 | + list_for_each_entry(iter, &ls->ls_waiters, lkb_wait_reply) { |
---|
| 5249 | + if (iter->lkb_flags & DLM_IFL_RESEND) { |
---|
| 5250 | + hold_lkb(iter); |
---|
| 5251 | + lkb = iter; |
---|
5252 | 5252 | break; |
---|
5253 | 5253 | } |
---|
5254 | 5254 | } |
---|
5255 | 5255 | mutex_unlock(&ls->ls_waiters_mutex); |
---|
5256 | 5256 | |
---|
5257 | | - if (!found) |
---|
5258 | | - lkb = NULL; |
---|
5259 | 5257 | return lkb; |
---|
5260 | 5258 | } |
---|
5261 | 5259 | |
---|
.. | .. |
---|
5914 | 5912 | int mode, uint32_t flags, void *name, unsigned int namelen, |
---|
5915 | 5913 | unsigned long timeout_cs, uint32_t *lkid) |
---|
5916 | 5914 | { |
---|
5917 | | - struct dlm_lkb *lkb; |
---|
| 5915 | + struct dlm_lkb *lkb = NULL, *iter; |
---|
5918 | 5916 | struct dlm_user_args *ua; |
---|
5919 | 5917 | int found_other_mode = 0; |
---|
5920 | | - int found = 0; |
---|
5921 | 5918 | int rv = 0; |
---|
5922 | 5919 | |
---|
5923 | 5920 | mutex_lock(&ls->ls_orphans_mutex); |
---|
5924 | | - list_for_each_entry(lkb, &ls->ls_orphans, lkb_ownqueue) { |
---|
5925 | | - if (lkb->lkb_resource->res_length != namelen) |
---|
| 5921 | + list_for_each_entry(iter, &ls->ls_orphans, lkb_ownqueue) { |
---|
| 5922 | + if (iter->lkb_resource->res_length != namelen) |
---|
5926 | 5923 | continue; |
---|
5927 | | - if (memcmp(lkb->lkb_resource->res_name, name, namelen)) |
---|
| 5924 | + if (memcmp(iter->lkb_resource->res_name, name, namelen)) |
---|
5928 | 5925 | continue; |
---|
5929 | | - if (lkb->lkb_grmode != mode) { |
---|
| 5926 | + if (iter->lkb_grmode != mode) { |
---|
5930 | 5927 | found_other_mode = 1; |
---|
5931 | 5928 | continue; |
---|
5932 | 5929 | } |
---|
5933 | 5930 | |
---|
5934 | | - found = 1; |
---|
5935 | | - list_del_init(&lkb->lkb_ownqueue); |
---|
5936 | | - lkb->lkb_flags &= ~DLM_IFL_ORPHAN; |
---|
5937 | | - *lkid = lkb->lkb_id; |
---|
| 5931 | + lkb = iter; |
---|
| 5932 | + list_del_init(&iter->lkb_ownqueue); |
---|
| 5933 | + iter->lkb_flags &= ~DLM_IFL_ORPHAN; |
---|
| 5934 | + *lkid = iter->lkb_id; |
---|
5938 | 5935 | break; |
---|
5939 | 5936 | } |
---|
5940 | 5937 | mutex_unlock(&ls->ls_orphans_mutex); |
---|
5941 | 5938 | |
---|
5942 | | - if (!found && found_other_mode) { |
---|
| 5939 | + if (!lkb && found_other_mode) { |
---|
5943 | 5940 | rv = -EAGAIN; |
---|
5944 | 5941 | goto out; |
---|
5945 | 5942 | } |
---|
5946 | 5943 | |
---|
5947 | | - if (!found) { |
---|
| 5944 | + if (!lkb) { |
---|
5948 | 5945 | rv = -ENOENT; |
---|
5949 | 5946 | goto out; |
---|
5950 | 5947 | } |
---|