summaryrefslogtreecommitdiffstats
path: root/drivers/block/rbd.c
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'for-linus' of git://ceph.newdream.net/git/ceph-clientLinus Torvalds2011-10-291-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'for-linus' of git://ceph.newdream.net/git/ceph-client: libceph: fix double-free of page vector ceph: fix 32-bit ino numbers libceph: force resend of osd requests if we skip an osdmap ceph: use kernel DNS resolver ceph: fix ceph_monc_init memory leak ceph: let the set_layout ioctl set single traits Revert "ceph: don't truncate dirty pages in invalidate work thread" ceph: replace leading spaces with tabs libceph: warn on msg allocation failures libceph: don't complain on msgpool alloc failures libceph: always preallocate mon connection libceph: create messenger with client ceph: document ioctls ceph: implement (optional) max read size ceph: rename rsize -> rasize ceph: make readpages fully async
| * libceph: create messenger with clientSage Weil2011-10-261-1/+1
| | | | | | | | | | | | | | This simplifies the init/shutdown paths, and makes client->msgr available during the rest of the setup process. Signed-off-by: Sage Weil <sage@newdream.net>
* | Merge branch 'master' into for-nextJiri Kosina2011-09-151-1/+45
|\| | | | | | | | | Fast-forward merge with Linus to be able to merge patches based on more recent version of the tree.
| * rbd: set blk_queue request sizes to object sizeJosh Durgin2011-07-261-0/+15
| | | | | | | | | | | | | | This improves performance since more requests can be merged. Reviewed-by: Yehuda Sadeh <yehuda@hq.newdream.net> Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
| * rbd: cancel watch request when releasing the deviceYehuda Sadeh2011-07-261-1/+30
| | | | | | | | | | | | | | | | We were missing this cleanup, so when a device was released the osd didn't clean up its watchers list, so following notifications could be slow as osd needed to timeout on the client. Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
* | treewide: remove extra semicolons from various parts of the kernelJustin P. Mattock2011-09-151-1/+1
|/ | | | | | | | | | This is a resend from the original, changing the title from PATCH to RFC(since this is a review for commit, and I should have put that the first go around). and also removing some of the commit's with ia64 and bash since it is significant. let me know if I might have missed anything etc.. Signed-off-by: Justin P. Mattock <justinmattock@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* rbd: handle online resize of underlying rbd imageSage Weil2011-05-241-0/+3
| | | | | | | If we get a notification that the image header has changed, check for a change in the image size. Signed-off-by: Sage Weil <sage@newdream.net>
* rbd: use snprintf for disk->disk_nameSage Weil2011-05-241-1/+2
| | | | Signed-off-by: Sage Weil <sage@newdream.net>
* rbd: cleanup: make kfree match kmallocSage Weil2011-05-241-7/+7
| | | | Signed-off-by: Sage Weil <sage@newdream.net>
* rbd: warn on update_snaps failure on notifySage Weil2011-05-191-1/+6
| | | | Signed-off-by: Sage Weil <sage@newdream.net>
* rbd: fix split bio handlingYehuda Sadeh2011-05-131-20/+151
| | | | | | | | | | | | | | | | | | The rbd driver currently splits bios when they span an object boundary. However, the blk_end_request expects the completions to roll up the results in block device order, and the split rbd/ceph ops can complete in any order. This patch adds a struct rbd_req_coll to track completion of split requests and ensures that the results are passed back up to the block layer in order. This fixes errors where the file system gets completion of a read operation that spans an object boundary before the data has actually arrived. The bug is easily reproduced with iozone with a working set larger than available RAM. Reported-by: Fyodor Ustinov <ufm@ufm.su> Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net> Signed-off-by: Sage Weil <sage@newdream.net>
* rbd: fix leak of ops structSage Weil2011-05-131-1/+5
| | | | | | The ops vector must be freed by the rbd_do_request caller. Signed-off-by: Sage Weil <sage@newdream.net>
* libceph: fix ceph_osdc_alloc_request error checksSage Weil2011-05-031-2/+2
| | | | | | ceph_osdc_alloc_request returns NULL on failure. Signed-off-by: Sage Weil <sage@newdream.net>
* rbd: use watch/notify for changes in rbd headerYehuda Sadeh2011-03-221-26/+335
| | | | | | | | | Send notifications when we change the rbd header (e.g. create a snapshot) and wait for such notifications. This allows synchronizing the snapshot creation between different rbd clients/rools. Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net> Signed-off-by: Sage Weil <sage@newdream.net>
* rbd: fix cleanup when trying to mount inexistent imageYehuda Sadeh2011-01-131-4/+15
| | | | | | | | Previously we didn't clean up the sysfs entry that was just created. Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net> Signed-off-by: Sage Weil <sage@newdream.net>
* rbd: replace the rbd sysfs interfaceYehuda Sadeh2010-12-021-277/+471
| | | | | | | | | | | The new interface creates directories per mapped image and under each it creates a subdir per available snapshot. This allows keeping a cleaner interface within the sysfs guidelines. The ABI documentation was updated too. Acked-by: Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net> Signed-off-by: Sage Weil <sage@newdream.net>
* rbd: passing wrong variable to bvec_kunmap_irq()Dan Carpenter2010-10-211-1/+1
| | | | | | | | | We should be passing "buf" here insead of "bv". This is tricky because it's not the same as kmap() and kunmap(). GCC does warn about it if you compile on i386 with CONFIG_HIGHMEM. Signed-off-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Sage Weil <sage@newdream.net>
* rbd: null vs ERR_PTRDan Carpenter2010-10-211-2/+2
| | | | | | | ceph_alloc_page_vector() returns ERR_PTR(-ENOMEM) on errors. Signed-off-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Sage Weil <sage@newdream.net>
* block: rbd: removing unnecessary testYehuda Sadeh2010-10-211-4/+0Star
| | | | | | | rbd_get_segment() can't return a negative value, we don't need to check the return output. Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
* block: rbd: fixed may leaksVasiliy Kulikov2010-10-211-6/+8
| | | | | | | | | | rbd_client_create() doesn't free rbdc, this leads to many leaks. seg_len in rbd_do_op() is unsigned, so (seg_len < 0) makes no sense. Also if fixed check fails then seg_name is leaked. Signed-off-by: Vasiliy Kulikov <segooon@gmail.com> Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
* rbd: introduce rados block device (rbd), based on libcephYehuda Sadeh2010-10-211-0/+1843
The rados block device (rbd), based on osdblk, creates a block device that is backed by objects stored in the Ceph distributed object storage cluster. Each device consists of a single metadata object and data striped over many data objects. The rbd driver supports read-only snapshots. Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net> Signed-off-by: Sage Weil <sage@newdream.net>