]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blobdiff - drivers/block/nbd.c
UBUNTU: Ubuntu-raspi2-4.10.0-1002.4
[mirror_ubuntu-zesty-kernel.git] / drivers / block / nbd.c
index 50a2020b5b724fd657c01b6d1a27c33a68a27fd0..a4235526b270a7d837870c3bc1feace9ff9991a9 100644 (file)
@@ -90,7 +90,7 @@ static struct dentry *nbd_dbg_dir;
 
 static unsigned int nbds_max = 16;
 static struct nbd_device *nbd_dev;
-static int max_part;
+static int max_part = 15;
 
 static inline struct device *nbd_to_dev(struct nbd_device *nbd)
 {
@@ -128,8 +128,6 @@ static void nbd_size_update(struct nbd_device *nbd, struct block_device *bdev)
        if (!nbd_is_connected(nbd))
                return;
 
-       bdev->bd_inode->i_size = nbd->bytesize;
-       set_capacity(nbd->disk, nbd->bytesize >> 9);
        kobject_uevent(&nbd_to_dev(nbd)->kobj, KOBJ_CHANGE);
 }
 
@@ -145,6 +143,8 @@ static int nbd_size_set(struct nbd_device *nbd, struct block_device *bdev,
        nbd->blksize = blocksize;
        nbd->bytesize = blocksize * nr_blocks;
 
+       bdev->bd_inode->i_size = nbd->bytesize;
+       set_capacity(nbd->disk, nbd->bytesize >> 9);
        nbd_size_update(nbd, bdev);
 
        return 0;
@@ -271,7 +271,7 @@ static inline int sock_send_bvec(struct nbd_device *nbd, int index,
 static int nbd_send_cmd(struct nbd_device *nbd, struct nbd_cmd *cmd, int index)
 {
        struct request *req = blk_mq_rq_from_pdu(cmd);
-       int result, flags;
+       int result;
        struct nbd_request request;
        unsigned long size = blk_rq_bytes(req);
        struct bio *bio;
@@ -310,7 +310,6 @@ static int nbd_send_cmd(struct nbd_device *nbd, struct nbd_cmd *cmd, int index)
        if (type != NBD_CMD_WRITE)
                return 0;
 
-       flags = 0;
        bio = req->bio;
        while (bio) {
                struct bio *next = bio->bi_next;
@@ -319,9 +318,8 @@ static int nbd_send_cmd(struct nbd_device *nbd, struct nbd_cmd *cmd, int index)
 
                bio_for_each_segment(bvec, bio, iter) {
                        bool is_last = !next && bio_iter_last(bvec, iter);
+                       int flags = is_last ? 0 : MSG_MORE;
 
-                       if (is_last)
-                               flags = MSG_MORE;
                        dev_dbg(nbd_to_dev(nbd), "request %p: sending %d bytes data\n",
                                cmd, bvec.bv_len);
                        result = sock_send_bvec(nbd, index, &bvec, flags);