- 23 Dec, 2009 4 commits
-
-
Sage Weil authored
Use a single mutex (previously out_mutex) to protect both read and write activity from concurrent ceph_con_* calls. Drop the mutex when doing callbacks to avoid nested locking (the callback may need to call something like ceph_con_close). Signed-off-by: Sage Weil <sage@newdream.net>
-
Sage Weil authored
Canceled or timed out osd requests were getting left in the request list and never deallocated (until umount). Unregister if they are canceled (control-c) or time out. Signed-off-by: Sage Weil <sage@newdream.net>
-
Sage Weil authored
Signed-off-by: Sage Weil <sage@newdream.net>
-
Sage Weil authored
Avoid confusing iterate_session_caps(), flag the session while we are iterating so that __touch_cap does not rearrange items on the list. All other modifiers of session->s_caps do so under the protection of s_mutex. Signed-off-by: Sage Weil <sage@newdream.net>
-
- 22 Dec, 2009 16 commits
-
-
Sage Weil authored
An incremental pg_temp wasn't being decoded properly (wrong bound on for loop). Also remove unused local variable, while we're at it. Signed-off-by: Sage Weil <sage@newdream.net>
-
Sage Weil authored
Both osdmap_decode() and osdmap_apply_incremental() should never return NULL. Signed-off-by: Sage Weil <sage@newdream.net>
-
Sage Weil authored
We need to hold session s_mutex for __ceph_mdsc_drop_dentry_lease(), which we don't, so skip it. It was purely an optimization. Signed-off-by: Sage Weil <sage@newdream.net>
-
Sage Weil authored
This works around a bug in vfs_rename_dir() that rehashes the target dentry. Ensure such dentries always fail revalidation by timing out the dentry lease and kicking it out of the current directory lease gen. This can be reverted when the vfs bug is fixed. Signed-off-by: Sage Weil <sage@newdream.net>
-
Yehuda Sadeh authored
Set bdi congestion bit when amount of write data in flight exceeds adjustable threshold. Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net> Signed-off-by: Sage Weil <sage@newdream.net>
-
Yehuda Sadeh authored
Fixes a deadlock that is triggered due to kswapd, while the page was locked and the iput couldn't tear down the address space. Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
-
Yehuda Sadeh authored
Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
-
Sage Weil authored
Signed-off-by: Sage Weil <sage@newdream.net>
-
Sage Weil authored
Signed-off-by: Sage Weil <sage@newdream.net>
-
Sage Weil authored
If we explicitly close a connection, or there is a socket error, we need to drop any partially received message. Signed-off-by: Sage Weil <sage@newdream.net>
-
Sage Weil authored
Also, print fsid using standard format, NOT hex dump. Signed-off-by: Sage Weil <sage@newdream.net>
-
Yehuda Sadeh authored
Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
-
Sage Weil authored
For lossy connections we drop all state on socket errors, so there is no reason to keep sent ceph_msg's around. Signed-off-by: Sage Weil <sage@newdream.net>
-
Sage Weil authored
The server indicates whether a connection is lossy; set our LOSSYTX bit appropriately. Do not set lossy bit on outgoing connections. Signed-off-by: Sage Weil <sage@newdream.net>
-
Sage Weil authored
Signed-off-by: Sage Weil <sage@newdream.net>
-
Sage Weil authored
Carry a ceph_msg reference for connection->out_msg. This will allow us to make out_sent optional. Signed-off-by: Sage Weil <sage@newdream.net>
-
- 11 Dec, 2009 1 commit
-
-
Sage Weil authored
Fix leak of monc mutex on ENOMEM or bad fsid when receiving new mon map. Audited all other users. Signed-off-by: Sage Weil <sage@newdream.net>
-
- 09 Dec, 2009 1 commit
-
-
Sage Weil authored
Do not feed bad (large) device ids to CRUSH. Signed-off-by: Sage Weil <sage@newdream.net>
-
- 07 Dec, 2009 5 commits
-
-
Sage Weil authored
Signed-off-by: Sage Weil <sage@newdream.net>
-
Sage Weil authored
Signed-off-by: Sage Weil <sage@newdream.net>
-
Sage Weil authored
Signed-off-by: Sage Weil <sage@newdream.net>
-
Sage Weil authored
We never allocate the ceph_buffer and buffer separtely, so use a single constructor. Disallow put on NULL buffer; make the caller check. Signed-off-by: Sage Weil <sage@newdream.net>
-
Sage Weil authored
Signed-off-by: Sage Weil <sage@newdream.net>
-
- 04 Dec, 2009 1 commit
-
-
Sage Weil authored
Signed-off-by: Sage Weil <sage@newdream.net>
-
- 03 Dec, 2009 4 commits
-
-
Sage Weil authored
Signed-off-by: Sage Weil <sage@newdream.net>
-
Sage Weil authored
There is certainly no reason not to report this. The only real downside to allowing the user to set it is that you don't get default values by zeroing the layout struct (the default is -1). Signed-off-by: Sage Weil <sage@newdream.net>
-
Sage Weil authored
We need to skip /.ceph in (cached) readdir results, and exclude "/.ceph" from the cached ENOENT lookup check. Signed-off-by: Sage Weil <sage@newdream.net>
-
Sage Weil authored
Signed-off-by: Sage Weil <sage@newdream.net>
-
- 01 Dec, 2009 1 commit
-
-
Sage Weil authored
Fix leak of osd client request_mutex on receiving dup ack. Signed-off-by: Sage Weil <sage@newdream.net>
-
- 21 Nov, 2009 3 commits
-
-
Sage Weil authored
ceph_lookup_snap_realm either returns a valid pointer or NULL; there is no need to check IS_ERR(result). Reported-by: Julia Lawall <julia@diku.dk> Signed-off-by: Sage Weil <sage@newdream.net>
-
Julia Lawall authored
If the NULL test is necessary, then the dereference should be moved below the NULL test. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/). // <smpl> @@ type T; expression E; identifier i,fld; statement S; @@ - T i = E->fld; + T i; ... when != E when != i if (E == NULL) S + i = E->fld; // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Sage Weil <sage@newdream.net>
-
Julia Lawall authored
Error handling code following a kmalloc should free the allocated data. The semantic match that finds this problem is as follows: (http://www.emn.fr/x-info/coccinelle/) // <smpl> @r exists@ local idexpression x; statement S; expression E; identifier f,f1,l; position p1,p2; expression *ptr != NULL; @@ x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...); ... if (x == NULL) S <... when != x when != if (...) { <+...x...+> } ( x->f1 = E | (x->f1 == NULL || ...) | f(...,x->f1,...) ) ...> ( return \(0\|<+...x...+>\|ptr\); | return@p2 ...; ) @script:python@ p1 << r.p1; p2 << r.p2; @@ print "* file: %s kmalloc %s return %s" % (p1[0].file,p1[0].line,p2[0].line) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Sage Weil <sage@newdream.net>
-
- 20 Nov, 2009 4 commits
-
-
Sage Weil authored
Left over from mount/auth protocol changes. Signed-off-by: Sage Weil <sage@newdream.net>
-
Sage Weil authored
Reset the backoff delay when we reopen the connection, so that the delays for any initial connection problems are reasonable. We were resetting only after a successful handshake, which was of limited utility. Signed-off-by: Sage Weil <sage@newdream.net>
-
Sage Weil authored
The max_size increase request to the MDS can get lost during an MDS restart and reconnect. Reset our requested value after the MDS recovers, so that any blocked writes will re-request a larger max_size upon waking. Also, explicit wake session caps after the reconnect. Normally the cap renewal catches this, but not in the cases where the caps didn't go stale in the first place, which would leave writers waiting on max_size asleep. Signed-off-by: Sage Weil <sage@newdream.net>
-
Yehuda Sadeh authored
Signed-off-by: Yehuda Sadeh <yehuda@newdream.net>
-