- 08 12月, 2009 2 次提交
-
-
由 Sage Weil 提交于
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: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Signed-off-by: NSage Weil <sage@newdream.net>
-
- 05 12月, 2009 1 次提交
-
-
由 Sage Weil 提交于
Signed-off-by: NSage Weil <sage@newdream.net>
-
- 04 12月, 2009 4 次提交
-
-
由 Sage Weil 提交于
Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
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: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
We need to skip /.ceph in (cached) readdir results, and exclude "/.ceph" from the cached ENOENT lookup check. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Signed-off-by: NSage Weil <sage@newdream.net>
-
- 02 12月, 2009 1 次提交
-
-
由 Sage Weil 提交于
Fix leak of osd client request_mutex on receiving dup ack. Signed-off-by: NSage Weil <sage@newdream.net>
-
- 22 11月, 2009 3 次提交
-
-
由 Sage Weil 提交于
ceph_lookup_snap_realm either returns a valid pointer or NULL; there is no need to check IS_ERR(result). Reported-by: NJulia Lawall <julia@diku.dk> Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Julia Lawall 提交于
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: NJulia Lawall <julia@diku.dk> Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Julia Lawall 提交于
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: NJulia Lawall <julia@diku.dk> Signed-off-by: NSage Weil <sage@newdream.net>
-
- 21 11月, 2009 7 次提交
-
-
由 Sage Weil 提交于
Left over from mount/auth protocol changes. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
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: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
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: NSage Weil <sage@newdream.net>
-
由 Yehuda Sadeh 提交于
Signed-off-by: NYehuda Sadeh <yehuda@newdream.net>
-
由 Sage Weil 提交于
The mds map now uses the global_id as the 'key' (instead of the addr, which was a poor choice). This is protocol change. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
We may first learn our fsid from any of the mon, osd, or mds maps (whichever the monitor sends first). Consolidate checks in a single helper. Initialize the client debugfs entry then, since we need the fsid (and global_id) for the directory name. Also remove dead mount code. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Signed-off-by: NSage Weil <sage@newdream.net>
-
- 19 11月, 2009 5 次提交
-
-
由 Sage Weil 提交于
Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
When we open a monitor session, we send an initial AUTH message listing the auth protocols we support, our entity name, and (possibly) a previously assigned global_id. The monitor chooses a protocol and responds with an initial message. Initially implement AUTH_NONE, a dummy protocol that provides no security, but works within the new framework. It generates 'authorizers' that are used when connecting to (mds, osd) services that simply state our entity name and global_id. This is a wire protocol change. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Unwind initializing if we get ENOMEM during client initialization. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
We require that ceph_con_close be called before we drop the connection, so this is unneeded. Just BUG if con->sock != NULL. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
We want to ceph_con_close when we're done with the connection, before the ref count reaches 0. Once it does, do not call ceph_con_shutdown, as that takes the con mutex and may sleep, and besides that is unnecessary. Signed-off-by: NSage Weil <sage@newdream.net>
-
- 13 11月, 2009 2 次提交
-
-
由 Sage Weil 提交于
We occasionally want to make a best-effort attempt to invalidate cache pages without fear of blocking. If this fails, we fall back to an async invalidate in another thread. Use invalidate_mapping_pages instead of invalidate_inode_page2, as that will skip locked pages, and not deadlock. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Signed-off-by: NSage Weil <sage@newdream.net>
-
- 12 11月, 2009 3 次提交
-
-
由 Sage Weil 提交于
This helps the user know what's going on during the (involved) reconnect process. They already see when the mds fails and reconnect starts. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
It was hidden from sync readdir, but not the cached dcache version. Signed-off-by: NSage Weil <sage@newdream.net>
-
- 11 11月, 2009 2 次提交
-
-
由 Sage Weil 提交于
We don't get an explicit affirmative confirmation that our caps reconnect, nor do we necessarily want to pay that cost. So, take all this code out for now. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
We need to make sure we only swab the address during the banner once. So break process_banner out of process_connect, and clean up the surrounding code so that these are distinct phases of the handshake. Signed-off-by: NSage Weil <sage@newdream.net>
-
- 10 11月, 2009 1 次提交
-
-
由 Sage Weil 提交于
We were using the cap_gen to track both stale caps (caps that timed out due to temporarily losing touch with the mds) and dead caps that did not reconnect after an MDS failure. Introduce a recon_gen counter to track reconnections to restarted MDSs and kill dead caps based on that instead. Rename gen to cap_gen while we're at it to make it more clear which is which. Signed-off-by: NSage Weil <sage@newdream.net>
-
- 08 11月, 2009 1 次提交
-
-
由 Sage Weil 提交于
Make the integer hash function a property of the bucket it is used on. This allows us to gracefully add support for new hash functions without starting from scatch. Signed-off-by: NSage Weil <sage@newdream.net>
-
- 07 11月, 2009 4 次提交
-
-
由 Sage Weil 提交于
The object will be hashed to a placement seed (ps) based on the pg_pool's hash function. This allows new hashes to be introduced into an existing object store, or selection of a hash appropriate to the objects that will be stored in a particular pool. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
We were using the (weak) dcache hash function, but it was leaving lower bits consecutive for consecutive (inode) objects. We really want to make the object to pg mapping random and uniform, so use a proper hash function here. This is Robert Jenkin's public domain hash function (with some minor cleanup): http://burtleburtle.net/bob/hash/evahash.html This is a protocol revision. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
These are way to big to be inline. I missed crush/* when doing the inline audit for akpm's review. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
No ceph prefix. Signed-off-by: NSage Weil <sage@newdream.net>
-
- 05 11月, 2009 3 次提交
-
-
由 Sage Weil 提交于
The port is informational only, but we should make it correct. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
Use the __le macro, even though for -1 it doesn't matter. Signed-off-by: NSage Weil <sage@newdream.net>
-
由 Sage Weil 提交于
The endian conversions don't quite work with the old union ceph_pg. Just make it a regular struct, and make each field __le. This is simpler and it has the added bonus of actually working. Signed-off-by: NSage Weil <sage@newdream.net>
-
- 04 11月, 2009 1 次提交
-
-
由 Sage Weil 提交于
We exchange struct ceph_entity_addr over the wire and store it on disk. The sockaddr_storage.ss_family field, however, is host endianness. So, fix ss_family endianness to big endian when sending/receiving over the wire. Signed-off-by: NSage Weil <sage@newdream.net>
-