ceph_sync_{,direct_}write: fix an oops on ceph_osdc_new_request() failure
authorAl Viro <viro@zeniv.linux.org.uk>
Fri, 4 Apr 2014 02:44:19 +0000 (22:44 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Sat, 12 Apr 2014 10:51:51 +0000 (06:51 -0400)
ceph_osdc_put_request(ERR_PTR(-error)) oopses.  What we want there
is break, not goto out.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/ceph/file.c

index 2d9088b1bcd90924125176ea8d1d890ce4858248..359805b671b92c2732150e9eb39c69b1e5c356e1 100644 (file)
@@ -600,7 +600,7 @@ ceph_sync_direct_write(struct kiocb *iocb, const struct iovec *iov,
                                            false);
                if (IS_ERR(req)) {
                        ret = PTR_ERR(req);
                                            false);
                if (IS_ERR(req)) {
                        ret = PTR_ERR(req);
-                       goto out;
+                       break;
                }
 
                num_pages = calc_pages_for(page_align, len);
                }
 
                num_pages = calc_pages_for(page_align, len);
@@ -718,7 +718,7 @@ static ssize_t ceph_sync_write(struct kiocb *iocb, const struct iovec *iov,
                                            false);
                if (IS_ERR(req)) {
                        ret = PTR_ERR(req);
                                            false);
                if (IS_ERR(req)) {
                        ret = PTR_ERR(req);
-                       goto out;
+                       break;
                }
 
                /*
                }
 
                /*