diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-19 13:50:37 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-19 13:50:37 -0400 |
commit | e9ff04dd94d46c817bbb103531cdef6e7bd5d022 (patch) | |
tree | f6544ac65503d04b7760492e7f2592132e4a6d6c /net | |
parent | ed24fee24a6be9568b1ee30209bafe4dad66be0e (diff) | |
parent | 9c89d62948c4740e379a7e0085dd8d7c1561f53f (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client
Pull ceph fixes from Sage Weil:
"These fix several bugs with RBD from 3.11 that didn't get tested in
time for the merge window: some error handling, a use-after-free, and
a sequencing issue when unmapping and image races with a notify
operation.
There is also a patch fixing a problem with the new ceph + fscache
code that just went in"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
fscache: check consistency does not decrement refcount
rbd: fix error handling from rbd_snap_name()
rbd: ignore unmapped snapshots that no longer exist
rbd: fix use-after free of rbd_dev->disk
rbd: make rbd_obj_notify_ack() synchronous
rbd: complete notifies before cleaning up osd_client and rbd_dev
libceph: add function to ensure notifies are complete
Diffstat (limited to 'net')
-rw-r--r-- | net/ceph/osd_client.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c index 1606f740d6ae..2b4b32aaa893 100644 --- a/net/ceph/osd_client.c +++ b/net/ceph/osd_client.c | |||
@@ -2216,6 +2216,17 @@ void ceph_osdc_sync(struct ceph_osd_client *osdc) | |||
2216 | EXPORT_SYMBOL(ceph_osdc_sync); | 2216 | EXPORT_SYMBOL(ceph_osdc_sync); |
2217 | 2217 | ||
2218 | /* | 2218 | /* |
2219 | * Call all pending notify callbacks - for use after a watch is | ||
2220 | * unregistered, to make sure no more callbacks for it will be invoked | ||
2221 | */ | ||
2222 | extern void ceph_osdc_flush_notifies(struct ceph_osd_client *osdc) | ||
2223 | { | ||
2224 | flush_workqueue(osdc->notify_wq); | ||
2225 | } | ||
2226 | EXPORT_SYMBOL(ceph_osdc_flush_notifies); | ||
2227 | |||
2228 | |||
2229 | /* | ||
2219 | * init, shutdown | 2230 | * init, shutdown |
2220 | */ | 2231 | */ |
2221 | int ceph_osdc_init(struct ceph_osd_client *osdc, struct ceph_client *client) | 2232 | int ceph_osdc_init(struct ceph_osd_client *osdc, struct ceph_client *client) |