mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-12 07:37:31 -04:00
staging: lustre: open code polling loop instead of using l_wait_event()
Two places that LWI_TIMEOUT_INTERVAL() is used, the outcome is a simple polling loop that polls every second for some event (with a limit). So write a simple loop to make this more apparent. Reviewed-by: James Simmons <jsimmons@infradead.org> Signed-off-by: NeilBrown <neilb@suse.com> Reviewed-by: Patrick Farrell <paf@cray.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
e3382addbc
commit
60f51d5974
2 changed files with 10 additions and 13 deletions
|
|
@ -1984,8 +1984,7 @@ void ll_umount_begin(struct super_block *sb)
|
|||
struct ll_sb_info *sbi = ll_s2sbi(sb);
|
||||
struct obd_device *obd;
|
||||
struct obd_ioctl_data *ioc_data;
|
||||
wait_queue_head_t waitq;
|
||||
struct l_wait_info lwi;
|
||||
int cnt = 0;
|
||||
|
||||
CDEBUG(D_VFSTRACE, "VFS Op: superblock %p count %d active %d\n", sb,
|
||||
sb->s_count, atomic_read(&sb->s_active));
|
||||
|
|
@ -2021,10 +2020,10 @@ void ll_umount_begin(struct super_block *sb)
|
|||
* and then continue. For now, we just periodically checking for vfs
|
||||
* to decrement mnt_cnt and hope to finish it within 10sec.
|
||||
*/
|
||||
init_waitqueue_head(&waitq);
|
||||
lwi = LWI_TIMEOUT_INTERVAL(10 * HZ,
|
||||
HZ, NULL, NULL);
|
||||
l_wait_event(waitq, may_umount(sbi->ll_mnt.mnt), &lwi);
|
||||
while (cnt < 10 && !may_umount(sbi->ll_mnt.mnt)) {
|
||||
schedule_timeout_uninterruptible(HZ);
|
||||
cnt ++;
|
||||
}
|
||||
|
||||
schedule();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -99,8 +99,7 @@ static int lov_check_set(struct lov_obd *lov, int idx)
|
|||
*/
|
||||
static int lov_check_and_wait_active(struct lov_obd *lov, int ost_idx)
|
||||
{
|
||||
wait_queue_head_t waitq;
|
||||
struct l_wait_info lwi;
|
||||
int cnt = 0;
|
||||
struct lov_tgt_desc *tgt;
|
||||
int rc = 0;
|
||||
|
||||
|
|
@ -125,11 +124,10 @@ static int lov_check_and_wait_active(struct lov_obd *lov, int ost_idx)
|
|||
|
||||
mutex_unlock(&lov->lov_lock);
|
||||
|
||||
init_waitqueue_head(&waitq);
|
||||
lwi = LWI_TIMEOUT_INTERVAL(obd_timeout * HZ,
|
||||
HZ, NULL, NULL);
|
||||
|
||||
rc = l_wait_event(waitq, lov_check_set(lov, ost_idx), &lwi);
|
||||
while (cnt < obd_timeout && !lov_check_set(lov, ost_idx)) {
|
||||
schedule_timeout_uninterruptible(HZ);
|
||||
cnt ++;
|
||||
}
|
||||
if (tgt->ltd_active)
|
||||
return 1;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue