Commit Graph

11082 Commits

Author SHA1 Message Date
Sage Weil
d2205a9423 qa: snaptest-upchildreams.sh should clean up after itself 2010-08-17 14:29:30 -07:00
Sage Weil
2551651069 qa: add capwb check for case where client doesn't send flushsnap 2010-08-17 14:29:30 -07:00
Sage Weil
5f9cc443e7 mds: fix rdlock referral on snapped inode to head
Note: this still needs some fixing, as the head and snapped inodes may be
on different MDSs!
2010-08-17 14:29:26 -07:00
Sage Weil
60596c75a1 mds: drop x/wrlocks before, rdlocks after sending reply
This lets us issue the most leases/caps possible.  It also ensure we can
issue caps in the snapped namespace when we are still on the head inode
(previously, releasing the rdlock twiddled the state, the client didn't
get say Frc, and hung indefinitely).
2010-08-17 12:15:04 -07:00
Sage Weil
caec5d2b19 client: direct requests in snapped namespace based on nonsnap parent
We fixed snapdir before.. but we need to do the same for the entire snapped
portion of the namespace.
2010-08-17 12:00:10 -07:00
Sage Weil
a4930d9eea qa: add snaptest-estale.sh
Verify requests withing snapped namespace are directed to the proper
MDS.  We should never get ESTALE, only ENOENT.
2010-08-17 12:00:07 -07:00
Sage Weil
4b6deda441 qa: make snaptest-2 output less ugly 2010-08-16 16:45:26 -07:00
Sage Weil
945c62c687 mds: make inode first track dn first on rename
This mirrors the logic in cc8f5ac47c77d1e336e16d8deb024d507e0e8c59.  Make
the renamed inode first match the destdn to avoid problems down the line.
Do this after we've (potentially) cowed the inode in the journal_cow_dentry
on srcdn.
2010-08-16 16:45:14 -07:00
Sage Weil
cc8f5ac47c mds: make new inodes follow dn->first
We can get a dn->first that is greater than the parent dir's seq.  Notably,
when we do something like

 mkdir foo
 mkdir foo/.snap/a
 rmdir foo/.snap/a
 rmdir foo

Here, the foo dentry has a high seq, and subsequent mkdir foo should make
sure we give the new foo dir inode the same seq (and not a lower one from
the parent).  Otherwise, things get confused later on.
2010-08-16 16:01:30 -07:00
Greg Farnum
7beeecc852 mds: Use project_past_parent and pop_projected_snaprealm instead of
add_past_parent hack.

Adjusted pop_projected to invalidate caches if needed, and removed
project_past_parent's deletion of projected snaprealm.
Removed add_past_parent.
2010-08-16 15:41:40 -07:00
Greg Farnum
b590b4bc1f mds: use snaprealm projection in rmsnap 2010-08-16 15:41:39 -07:00
Greg Farnum
d7ac8eee8a mds: use snaprealm projection methods for mksnap 2010-08-16 15:41:39 -07:00
Greg Farnum
830b62a9e1 mds: Move SnapRealm::project_past_parent to the CInode and fix users.
For now, delete the projected version of the inode so it matches (or fixes?)
old behavior. Once users have been fixed to use pop_projected_snaprealm et al,
remove that.
2010-08-16 15:41:39 -07:00
Greg Farnum
e4ea064edd mds: move snaprealm projection into CInode 2010-08-16 15:41:39 -07:00
Greg Farnum
bb0dcd2ced mds: add SnapRealm projection methods 2010-08-16 15:41:39 -07:00
Greg Farnum
6289b3e409 mds: rename SnapRealm::snaprealm to SnapRealm::srnode 2010-08-16 15:41:39 -07:00
Greg Farnum
b0a8f6be81 mds: switch all SnapRealm users to make use of snaprealm. 2010-08-16 15:41:39 -07:00
Greg Farnum
ca1d1eded4 mds: create a new sr_t struct to hold versioned data of a SnapRealm. 2010-08-16 15:41:39 -07:00
Sage Weil
2921e13506 mds: flush log on cap writeback if !dirty and unstable locks
The problem is if we revoke caps, nothing is dirty, but we do writeback
because we are adjusting max_size.  Then we have to wait for the log to
flush even though the revocation should proceed immediately.  To move
things along, flush the log immediately.

This still isn't ideal.. it would be nice to allow the locking to continue
and adjust max_size in parallel, but that isn't always possible, and will
require some more thought.
2010-08-16 14:51:25 -07:00
Sage Weil
18cf92aca2 mds: show cdentry authpin debug state 2010-08-16 14:51:25 -07:00
Sage Weil
eb5213eee0 qa: show rm/cp progress on snaptest-2 2010-08-16 14:51:25 -07:00
Sage Weil
4e9ae5d978 qa: add test that client updates realm children on snap update 2010-08-16 14:51:25 -07:00
Sage Weil
064c248654 client: correctly direct snapdir requests
Use real dir (and its caps), not the virtual snapdir.
2010-08-16 14:51:25 -07:00
Greg Farnum
ab2026952f qa: add snap-rm-diff.sh to look for issues with snapshot integrity.
Currently passes the script, although running these steps manually
(especially with smaller files) fails a fair percentage of the time for me.
2010-08-16 11:48:12 -07:00
Sage Weil
1a0ab55321 mds: only kick head on snap rdlock if in SNAP_SYNC state
We may, e.g., be in the SCAN state, which is totally unrelated to the
head!
2010-08-16 08:29:48 -07:00
Sage Weil
cdb8a98601 monclient: gracefully error out when given an invalid monmap path 2010-08-15 19:49:17 -07:00
Sage Weil
273319974d osd: update missing_loc earlier in push
This just avoids l=-1 from showing up in the logs, makes the logic a bit
cleaner (keeps missing and missing_loc in sync).

Signed-off-by: Sage Weil <sage@newdream.net>
2010-08-13 20:40:09 -07:00
Sage Weil
e5c0912650 debian: fix tcmalloc dependency
Depend on libgoogle-perftools0, not libtcmalloc-minimal0, since we link
against libtcmalloc, not libtcmalloc-minimal.  Duh.

Signed-off-by: Sage Weil <sage@newdream.net>
2010-08-13 15:12:34 -07:00
Sage Weil
165c5f274e client: fix xattr cap writeback 2010-08-13 15:02:12 -07:00
Sage Weil
0be7dcf5e8 client: fix capsnap writeback of uid/gid/mode/xattrs
Some metadata wasn't making it into CapSnap and was subsequently getting
written back zeroed to the MDS.

Signed-off-by: Sage Weil <sage@newdream.net>
2010-08-13 15:02:07 -07:00
Sage Weil
a5e582df85 Merge branch 'tcmalloc' into unstable 2010-08-12 16:32:42 -07:00
Sage Weil
462d317406 ceph.spec.in: require, build with tcmalloc 2010-08-12 16:32:10 -07:00
Sage Weil
49f3ac468f debian: require tcmalloc 2010-08-12 16:32:01 -07:00
Sage Weil
9069b8e598 mds: only kick head on snap rdlock if auth
- If we are non-auth, stick with the snap, and the auth will do the
inference.
- If we are auth, the head had better exist, because our lock is
pinned in an unreadable state for some reason.  Assert as much.
2010-08-12 13:28:47 -07:00
Sage Weil
755aa4fd17 Merge branch 'testing' into unstable 2010-08-12 13:10:44 -07:00
Sage Weil
c5e5237f3e filestore: fix throttling on journal, op_queue for parallel and writeahead 2010-08-12 13:10:28 -07:00
Sage Weil
c3e0915b89 filestore: fix race in op enqueuing to ensure throttle limit is honors 2010-08-12 13:10:23 -07:00
Sage Weil
bfee1fa36a objectstore: fix transaction get_num_bytes
The separate bytes field isn't used; use encoded bytes count for now.
2010-08-12 13:10:19 -07:00
Sage Weil
c4b7c97e1e mon: mon_clock_drift_* for consistency 2010-08-12 12:05:48 -07:00
Sage Weil
3345c3c5a9 Merge branch 'testing' into unstable 2010-08-12 11:57:43 -07:00
Sage Weil
c1da827def msg: use RefCountedObject; overload get() only to cast return type
Signed-off-by: Sage Weil <sage@newdream.net>
2010-08-12 11:57:37 -07:00
Sage Weil
998d97fc5e osd: whitespace 2010-08-12 11:57:37 -07:00
Sage Weil
dcedfb8505 osd: improve l_osd_buf accuracy 2010-08-12 11:57:37 -07:00
Sage Weil
42802008e9 buffer: fix/improve debug 2010-08-12 11:57:37 -07:00
Sage Weil
a3eefd5760 msgr: don't leak message when sending to a closed connection 2010-08-12 11:55:19 -07:00
Sage Weil
a406cfab39 osd: log push ops as push, not pull 2010-08-12 11:55:14 -07:00
Sage Weil
d00f43aa7e logger: fix logger counter reset
Reset inc keys after each line; reset all keys on full reset.

Signed-off-by: Sage Weil <sage@newdream.net>
2010-08-12 11:55:03 -07:00
Sage Weil
9341ddb714 Merge branch 'testing' into unstable
Conflicts:
	configure.ac
2010-08-11 16:19:56 -07:00
Sage Weil
7aa332cd82 ceph v0.21.1 2010-08-11 14:59:19 -07:00
Sage Weil
255bf71d97 mon: use elector's epoch
This fixes a race with successive elections: we may see a new election
(X+1), then get a victory (X).  The victory is ignored (rightly so).  But
then a paxos follows that which assumes X, and our check was against
mon_epoch, only updated on election victory.. and we are inconsistent and
crash.

So, just get rid of private mon_epoch and use the elector's value.

Signed-off-by: Sage Weil <sage@newdream.net>
2010-08-11 13:30:48 -07:00