Loading fs/ceph/file.c +9 −7 Original line number Diff line number Diff line Loading @@ -766,6 +766,15 @@ static ssize_t ceph_aio_write(struct kiocb *iocb, const struct iovec *iov, mutex_unlock(&inode->i_mutex); written = ceph_sync_write(file, iov->iov_base, count, pos, &iocb->ki_pos); if (written == -EOLDSNAPC) { dout("aio_write %p %llx.%llx %llu~%u" "got EOLDSNAPC, retrying\n", inode, ceph_vinop(inode), pos, (unsigned)iov->iov_len); mutex_lock(&inode->i_mutex); hold_mutex = true; goto retry_snap; } } else { written = generic_file_buffered_write(iocb, iov, nr_segs, pos, &iocb->ki_pos, Loading Loading @@ -796,13 +805,6 @@ static ssize_t ceph_aio_write(struct kiocb *iocb, const struct iovec *iov, written = err; } if (written == -EOLDSNAPC) { dout("aio_write %p %llx.%llx %llu~%u got EOLDSNAPC, retrying\n", inode, ceph_vinop(inode), pos, (unsigned)iov->iov_len); mutex_lock(&inode->i_mutex); hold_mutex = true; goto retry_snap; } out: if (hold_mutex) mutex_unlock(&inode->i_mutex); Loading Loading
fs/ceph/file.c +9 −7 Original line number Diff line number Diff line Loading @@ -766,6 +766,15 @@ static ssize_t ceph_aio_write(struct kiocb *iocb, const struct iovec *iov, mutex_unlock(&inode->i_mutex); written = ceph_sync_write(file, iov->iov_base, count, pos, &iocb->ki_pos); if (written == -EOLDSNAPC) { dout("aio_write %p %llx.%llx %llu~%u" "got EOLDSNAPC, retrying\n", inode, ceph_vinop(inode), pos, (unsigned)iov->iov_len); mutex_lock(&inode->i_mutex); hold_mutex = true; goto retry_snap; } } else { written = generic_file_buffered_write(iocb, iov, nr_segs, pos, &iocb->ki_pos, Loading Loading @@ -796,13 +805,6 @@ static ssize_t ceph_aio_write(struct kiocb *iocb, const struct iovec *iov, written = err; } if (written == -EOLDSNAPC) { dout("aio_write %p %llx.%llx %llu~%u got EOLDSNAPC, retrying\n", inode, ceph_vinop(inode), pos, (unsigned)iov->iov_len); mutex_lock(&inode->i_mutex); hold_mutex = true; goto retry_snap; } out: if (hold_mutex) mutex_unlock(&inode->i_mutex); Loading