if ((iot == CIT_WRITE) &&
!(cio->cui_fd->fd_flags & LL_FILE_GROUP_LOCKED)) {
if (mutex_lock_interruptible(&lli->
- lli_write_mutex))
- GOTO(out, result = -ERESTARTSYS);
- write_mutex_locked = 1;
- } else if (iot == CIT_READ) {
- down_read(&lli->lli_trunc_sem);
- }
+ lli_write_mutex))
+ GOTO(out, result = -ERESTARTSYS);
+ write_mutex_locked = 1;
+ }
+ down_read(&lli->lli_trunc_sem);
break;
case IO_SENDFILE:
vio->u.sendfile.cui_actor = args->u.sendfile.via_actor;
LBUG();
}
result = cl_io_loop(env, io);
- if (write_mutex_locked)
- mutex_unlock(&lli->lli_write_mutex);
- else if (args->via_io_subtype == IO_NORMAL && iot == CIT_READ)
+ if (args->via_io_subtype == IO_NORMAL)
up_read(&lli->lli_trunc_sem);
+ if (write_mutex_locked)
+ mutex_unlock(&lli->lli_write_mutex);
} else {
/* cl_io_rw_init() handled IO */
result = io->ci_result;