|
@@ -923,8 +923,11 @@ static int gfs2_lock(struct file *file, int cmd, struct file_lock *fl)
|
|
|
cmd = F_SETLK;
|
|
|
fl->fl_type = F_UNLCK;
|
|
|
}
|
|
|
- if (unlikely(test_bit(SDF_SHUTDOWN, &sdp->sd_flags)))
|
|
|
+ if (unlikely(test_bit(SDF_SHUTDOWN, &sdp->sd_flags))) {
|
|
|
+ if (fl->fl_type == F_UNLCK)
|
|
|
+ posix_lock_file_wait(file, fl);
|
|
|
return -EIO;
|
|
|
+ }
|
|
|
if (IS_GETLK(cmd))
|
|
|
return dlm_posix_get(ls->ls_dlm, ip->i_no_addr, file, fl);
|
|
|
else if (fl->fl_type == F_UNLCK)
|