Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7b9761af authored by Al Viro's avatar Al Viro Committed by Mike Marshall
Browse files

orangefs: wait_for_direct_io(): restore the position in iter when restarting

parent e17be9fd
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -133,6 +133,7 @@ static ssize_t wait_for_direct_io(enum ORANGEFS_io_type type, struct inode *inod
	struct orangefs_khandle *handle = &orangefs_inode->refn.khandle;
	struct orangefs_bufmap *bufmap = NULL;
	struct orangefs_kernel_op_s *new_op = NULL;
	struct iov_iter saved = *iter;
	int buffer_index = -1;
	ssize_t ret;

@@ -211,6 +212,8 @@ static ssize_t wait_for_direct_io(enum ORANGEFS_io_type type, struct inode *inod
	if (ret == -EAGAIN && op_state_purged(new_op)) {
		orangefs_bufmap_put(bufmap, buffer_index);
		buffer_index = -1;
		if (type == ORANGEFS_IO_WRITE)
			*iter = saved;
		gossip_debug(GOSSIP_FILE_DEBUG,
			     "%s:going to repopulate_shared_memory.\n",
			     __func__);