]>
git.apps.os.sepia.ceph.com Git - ceph.git/log
Sage Weil [Fri, 9 Jan 2009 22:15:44 +0000 (14:15 -0800)]
mds: wait for journal safe when doing ino allocations
Stop-gap, I suppose.. we really want to wait for things to fully journal,
period. Hmm.
Sage Weil [Fri, 9 Jan 2009 21:54:46 +0000 (13:54 -0800)]
kclient: resend unsafe requests just before to MClientReconnect
This makes it clear ot the MDS which requests are being replayed (not that
it makes a difference at the moment).
Sage Weil [Fri, 9 Jan 2009 20:55:59 +0000 (12:55 -0800)]
kclient: list unsafe requests in the MDS session
This easily defines the requests needed during reconnect without having
to consult the larger request table.
Sage Weil [Fri, 9 Jan 2009 20:49:17 +0000 (12:49 -0800)]
kclient: break out __prepare_send_request helper
This will be used for preparing the request when sent during reconnect
(instead of do_request, which exited after the first unsafe reply).
Sage Weil [Fri, 9 Jan 2009 20:48:24 +0000 (12:48 -0800)]
kclient: separate flag for got_safe and got_unsafe
Slightly more informative debugging messages. Avoid doing the safe cleanup
twice.
And the distinction will be important when replaying unsafe requests to
the mds during reconnect. I think.
Sage Weil [Fri, 9 Jan 2009 20:20:20 +0000 (12:20 -0800)]
kclient: set ino in request if we got an early reply
Make 'ino' a generic field so we don't have to look at the request type
when sending the message. It'll be ignored by the MDS when it's not
relevant anyway.
Yehuda Sadeh [Fri, 9 Jan 2009 20:41:14 +0000 (12:41 -0800)]
kclient: missing spin_unlock
Yehuda Sadeh [Fri, 9 Jan 2009 20:38:02 +0000 (12:38 -0800)]
kclient: replace radix tree with list for req dir listener
Yehuda Sadeh [Fri, 9 Jan 2009 19:34:33 +0000 (11:34 -0800)]
kclient: listener tree should use GFP_ATOMIC
Yehuda Sadeh [Thu, 8 Jan 2009 19:17:59 +0000 (11:17 -0800)]
kclient: remove extra mutex_unlock
Yehuda Sadeh [Thu, 8 Jan 2009 18:38:15 +0000 (10:38 -0800)]
start.sh: add $CEPH_BIN
Yehuda Sadeh [Thu, 8 Jan 2009 18:37:56 +0000 (10:37 -0800)]
kclient: fix fsync for directories
Yehuda Sadeh [Tue, 6 Jan 2009 23:01:26 +0000 (15:01 -0800)]
kclient: handle safe reply, sync dir waits for safe reply
Sage Weil [Fri, 9 Jan 2009 18:44:02 +0000 (10:44 -0800)]
mds: can_xlock_soon() should include LOCK_LOCK
i.e., if we are already xlocked. This avoids calling {file,scatter}_lock
on an already LOCK_LOCK lock.
Sage Weil [Fri, 9 Jan 2009 18:25:15 +0000 (10:25 -0800)]
mds: for wrlock when updating max_size in issue_caps()
If check_inode_max_size() changes the lock state, teh issue_caps local
values for *_allowed etc. are out of date, and we do the wrong thing.
And in any case, we can safely update max_size even when a wrlock isn't
normally allowed, e.g. when in LONER state.
Sage Weil [Fri, 9 Jan 2009 17:47:56 +0000 (09:47 -0800)]
mds: drop dup code
Sage Weil [Fri, 9 Jan 2009 17:45:59 +0000 (09:45 -0800)]
kclient: fix add_cap cap update
We want to _set_ cap->issued, and add bits to cap->implemented. This
mirrors what we see in handle_cap_grant. Note that this is dependent
on that fact that (currently, at least!) we should never see
a revocation here.
Sage Weil [Fri, 9 Jan 2009 05:29:06 +0000 (21:29 -0800)]
uclient: handle xattr updates
Sage Weil [Fri, 9 Jan 2009 00:45:53 +0000 (16:45 -0800)]
kclient: only update xattr blob when defined and newer (caps|reply)
Sage Weil [Fri, 9 Jan 2009 00:42:44 +0000 (16:42 -0800)]
mds: send xattrs down to client efficiently
Track what xattr_version the client (should) have in the capability
so we can be smart about including the xattr blob in the inodestat
and in caps messages.
Sage Weil [Thu, 8 Jan 2009 23:38:28 +0000 (15:38 -0800)]
move to generic ceph_seq_t 32-bit sequence number and comparator
We want to behave when the seq # rolls over. We'll be fine as long
as we don't differ by more than 1<<31.
Sage Weil [Thu, 8 Jan 2009 22:59:51 +0000 (14:59 -0800)]
kclient: make fill_trace look for RDCACHE cap on directory
The dcache update logic depends on whether EITHER a dentry lease
or an RDCACHE cap on the whole directory is provided. This detail
got lost in the lease->cap transition.
Sage Weil [Thu, 8 Jan 2009 22:43:04 +0000 (14:43 -0800)]
stop.sh: stop valgrind procs too
Sage Weil [Thu, 8 Jan 2009 22:42:50 +0000 (14:42 -0800)]
mds: fix capability off-by-one bug
Sage Weil [Thu, 8 Jan 2009 23:04:32 +0000 (15:04 -0800)]
mds: safely allow client to rdlock|lease dentries it xlocked
If the locked item is in it's final state, we can call
set_xlock_done(). Thereafter, we allow new rdlocks or leases
to be issued if the client matches the xlocker. Move the lock
state to LOCK_LOCK_SYNC to ensure it is not relocked.
Sage Weil [Thu, 8 Jan 2009 22:15:43 +0000 (14:15 -0800)]
mds: fix SimpleLock release evals
Sage Weil [Thu, 8 Jan 2009 21:38:07 +0000 (13:38 -0800)]
todos
Sage Weil [Thu, 8 Jan 2009 20:59:16 +0000 (12:59 -0800)]
mds: use projected parent when updating max_size
May be new file, or renaming.
Sage Weil [Thu, 8 Jan 2009 20:36:15 +0000 (12:36 -0800)]
mds: only check max_size if inode is a file
Sage Weil [Thu, 8 Jan 2009 20:31:16 +0000 (12:31 -0800)]
mon: fix uninitialized variable
Sage Weil [Thu, 8 Jan 2009 20:26:51 +0000 (12:26 -0800)]
Merge branch 'unstable' into caps
Sage Weil [Thu, 8 Jan 2009 20:25:39 +0000 (12:25 -0800)]
vstart: run cmon through crun, valgrind
Sage Weil [Thu, 8 Jan 2009 20:25:26 +0000 (12:25 -0800)]
mds: set issue_stamp on cap reconnect
Sage Weil [Thu, 8 Jan 2009 19:50:26 +0000 (11:50 -0800)]
kclient: exclude expireable caps from reconnect
No need to remove them; they are already invalid as the gen is out
of date.
Sage Weil [Thu, 8 Jan 2009 20:15:19 +0000 (12:15 -0800)]
mds: fix sessionmap->version value during EMetaBlob replay
++v, not v++.
Sage Weil [Thu, 8 Jan 2009 19:42:18 +0000 (11:42 -0800)]
mds: fix EMetaBlob initialization
Use a single constructor.
Sage Weil [Thu, 8 Jan 2009 18:43:29 +0000 (10:43 -0800)]
mds: only file_eval on xlock_finish if stable
Sage Weil [Thu, 8 Jan 2009 18:43:29 +0000 (10:43 -0800)]
mds: only file_eval on xlock_finish if stable
Sage Weil [Wed, 7 Jan 2009 23:44:45 +0000 (15:44 -0800)]
todos
Sage Weil [Wed, 7 Jan 2009 23:44:28 +0000 (15:44 -0800)]
kclient: don't pin dentry with lease
Discard when we notice it is invalid, or when we release the
dentry.
Sage Weil [Wed, 7 Jan 2009 23:43:31 +0000 (15:43 -0800)]
kclient: separate mds session lookup from ref get
Sage Weil [Wed, 7 Jan 2009 23:12:44 +0000 (15:12 -0800)]
Merge branch 'unstable' into caps
Sage Weil [Wed, 7 Jan 2009 23:12:02 +0000 (15:12 -0800)]
vstart: fix ip determination
Sage Weil [Wed, 7 Jan 2009 22:29:55 +0000 (14:29 -0800)]
mds: disable inode leases
Sage Weil [Wed, 7 Jan 2009 22:29:47 +0000 (14:29 -0800)]
mds: no inode lease in lssnap
Sage Weil [Wed, 7 Jan 2009 22:11:48 +0000 (14:11 -0800)]
kclient: fix cap release logic a bit
Keep an EXCL bits we have, as long as we have something wanted or
used.
Fix wanted update vs delayed cap release behavior.
Sage Weil [Wed, 7 Jan 2009 21:53:28 +0000 (13:53 -0800)]
kclient: fix request ref count leak from duplicate replies
Sage Weil [Wed, 7 Jan 2009 21:33:17 +0000 (13:33 -0800)]
mds: expire rdcaps
Make sure mds and client agree on the wanted value.
Sage Weil [Wed, 7 Jan 2009 19:29:50 +0000 (11:29 -0800)]
kclient: trim expired rdcaps; ignored issued but timed out caps
Introduce new CEPH_CAP_EXPIREABLE mask to control which caps (if
alone) time out.
Sage Weil [Wed, 7 Jan 2009 18:40:56 +0000 (10:40 -0800)]
kclient: fix buffer overrun in parse_reply_info_trace()
Bug introduced by
fb882d34c1be8fc7058f0f636bb68b134d638743 .
Sage Weil [Wed, 7 Jan 2009 18:26:05 +0000 (10:26 -0800)]
mds: issue AUTH_EXCL if also issuing FILE_EXCL
This will let e.g. untar chmod/chown without talking to the mds.
Sage Weil [Wed, 7 Jan 2009 00:47:48 +0000 (16:47 -0800)]
mds: update cap notes
Sage Weil [Wed, 7 Jan 2009 00:45:41 +0000 (16:45 -0800)]
kclient: implement ceph_release_caps
Just pass a 'drop' mask to check_caps, and tell it not to
delay.
Sage Weil [Wed, 7 Jan 2009 00:33:44 +0000 (16:33 -0800)]
mds: set ttl_ms in cap IMPORT message
Sage Weil [Wed, 7 Jan 2009 00:33:31 +0000 (16:33 -0800)]
kclient: keep readonly caps on per-session lru
Sage Weil [Wed, 7 Jan 2009 00:08:50 +0000 (16:08 -0800)]
mds: keep caps in lru; put ttl in cap issue to clients
Sage Weil [Tue, 6 Jan 2009 22:50:26 +0000 (14:50 -0800)]
kclient: local chmod/chown if holding CEPH_CAP_AUTH_EXCL
Sage Weil [Tue, 6 Jan 2009 22:40:06 +0000 (14:40 -0800)]
client: send release anytime we get a caps message and have no inode or cap
The exceptions are IMPORT, EXPORT, and FLUSHSNAP_ACK.
Sage Weil [Tue, 6 Jan 2009 22:38:08 +0000 (14:38 -0800)]
mds: always issue cap in inodestat
The previous (wrong) optimization was trying to avoid the old
pending_caps list in Capability.
Sage Weil [Tue, 6 Jan 2009 22:37:20 +0000 (14:37 -0800)]
mds: don't let release race with any caps
Sage Weil [Tue, 6 Jan 2009 21:46:34 +0000 (13:46 -0800)]
mds: simplify capability issued tracking
The original was really stupid.. keeping track of every issued
value in a list and traversing it to calculate the effective
issued mask.
New version has a small, fixed array that is used only when bits
are revoked.
Sage Weil [Tue, 6 Jan 2009 21:44:44 +0000 (13:44 -0800)]
uclient: fix likes bits
Sage Weil [Tue, 6 Jan 2009 20:47:29 +0000 (12:47 -0800)]
kclient: use new caps protocol
Also,
- Stat root inode instead of opening it. We will keep the PIN cap
and be happy.
- add ceph_cap_string helper to make cap values readable
Sage Weil [Tue, 6 Jan 2009 20:46:00 +0000 (12:46 -0800)]
mds: fix stat mask
Sage Weil [Tue, 6 Jan 2009 20:45:49 +0000 (12:45 -0800)]
mds: only send clientcaps if we need to revoke, or we can issue explicitly wanted caps
Sage Weil [Tue, 6 Jan 2009 20:45:24 +0000 (12:45 -0800)]
mds: fix cap release seq check
Sage Weil [Tue, 6 Jan 2009 19:08:44 +0000 (11:08 -0800)]
uclient: set dirty bits in cap_snap
Sage Weil [Tue, 6 Jan 2009 00:30:10 +0000 (16:30 -0800)]
mds: bunch of cap protocol changes, and user client adjustments.
See capability protocol notes in mds/Capability.h
Sage Weil [Mon, 5 Jan 2009 19:20:13 +0000 (11:20 -0800)]
kclient: fix snap realm update on reply
Take snap_rwsem always, since we usually get caps. Drop trailing
snaprealm ref after trace is fully processed.
Sage Weil [Mon, 5 Jan 2009 19:06:26 +0000 (11:06 -0800)]
mds: fix set_trace_dist snaprealm problem on unlink
Set snaprealm trace based on the first inode we see.
Sage Weil [Sun, 4 Jan 2009 23:41:03 +0000 (15:41 -0800)]
kclient: ref count cap_snap to avoid unnecessarily copying into temp variables
Sage Weil [Sun, 4 Jan 2009 20:14:40 +0000 (12:14 -0800)]
kclient: take fmode ref atomically while adding cap
Sage Weil [Sun, 4 Jan 2009 19:38:31 +0000 (11:38 -0800)]
client: do not update when already holding EXCL cap
Sage Weil [Sun, 4 Jan 2009 19:17:20 +0000 (11:17 -0800)]
kclient: caps basically working
handle caps on any inode in reply. no more inode leases.
Yehuda Sadeh [Sat, 3 Jan 2009 01:04:00 +0000 (17:04 -0800)]
kclient: use ceph_caps_release instead of dropping inode lease
Yehuda Sadeh [Sun, 4 Jan 2009 18:50:56 +0000 (10:50 -0800)]
kclient: switch from inode leases to new caps
----------------------------
Sage Weil [Sun, 4 Jan 2009 18:34:47 +0000 (10:34 -0800)]
notes
Sage Weil [Sun, 4 Jan 2009 18:28:50 +0000 (10:28 -0800)]
uclient: adjust cap release logic...
Sage Weil [Sun, 4 Jan 2009 17:38:46 +0000 (09:38 -0800)]
mds: only _do_cap_update if client held ANY_WR caps
Sage Weil [Sat, 3 Jan 2009 19:33:35 +0000 (11:33 -0800)]
mds: issue RDCACHE caps to client when possible. add cap to do so if inode auth.
Sage Weil [Sat, 3 Jan 2009 01:03:47 +0000 (17:03 -0800)]
uclient: sorta working
Sage Weil [Sat, 3 Jan 2009 01:00:08 +0000 (17:00 -0800)]
mds: fix scatterlock print
Sage Weil [Fri, 2 Jan 2009 23:29:29 +0000 (15:29 -0800)]
mds: put a cap in each inode stat in trace; simplify snaprealm trace encoding
Sage Weil [Fri, 2 Jan 2009 22:46:07 +0000 (14:46 -0800)]
mds: cap comments
Sage Weil [Fri, 2 Jan 2009 22:42:58 +0000 (14:42 -0800)]
mds: rewrite CEPH_STAT_MASK_* as CEPH_STAT_CAP_* (cap masks)
Sage Weil [Fri, 2 Jan 2009 22:26:08 +0000 (14:26 -0800)]
mds: cap writeback authlock fields as well as filelock fields
No xattrs yet.
Sage Weil [Fri, 2 Jan 2009 22:25:00 +0000 (14:25 -0800)]
mds: don't rdlock and xlock at the same time
Sage Weil [Fri, 2 Jan 2009 22:24:51 +0000 (14:24 -0800)]
mds: check for xlock in simple_sync()
Sage Weil [Fri, 2 Jan 2009 22:13:12 +0000 (14:13 -0800)]
mds: fix lock print methods
Sage Weil [Fri, 2 Jan 2009 20:05:09 +0000 (12:05 -0800)]
mds: share caps across multiple lock types.
Very rough initial first pass.
Sage Weil [Fri, 2 Jan 2009 17:26:15 +0000 (09:26 -0800)]
todo
Sage Weil [Thu, 1 Jan 2009 19:06:13 +0000 (11:06 -0800)]
mds: clean up lock print methods
Sage Weil [Wed, 31 Dec 2008 19:30:08 +0000 (11:30 -0800)]
Merge branch 'unstable' into asyncmds
Conflicts:
src/mon/OSDMonitor.cc
Sage Weil [Wed, 31 Dec 2008 19:20:29 +0000 (11:20 -0800)]
objecter: fix ack vs safe behavior
This was totally broken (ack was taken as a safe). Doh!
Sage Weil [Wed, 31 Dec 2008 19:21:21 +0000 (11:21 -0800)]
journaler: add --journaler_safe hack support back
Sage Weil [Wed, 31 Dec 2008 19:20:29 +0000 (11:20 -0800)]
objecter: fix ack vs safe behavior
This was totally broken (ack was taken as a safe). Doh!
Sage Weil [Wed, 31 Dec 2008 19:19:38 +0000 (11:19 -0800)]
kclient: setattr on inode (not path) if holding WR cap
For newly created files, this avoids contention in the MDS over the dentry
xlock (e.g., for an untar).
It is slightly risky, because we could race with a caps release and MDS
cache trim. Pretty unlikely, however, because cap release would also
involve MDS journaling.
Sage Weil [Wed, 31 Dec 2008 17:15:34 +0000 (09:15 -0800)]
mds: fix xattr projection
We do not want the new xattr to appear in the inode until the journal
entry commits.
Yehuda Sadeh [Wed, 31 Dec 2008 00:18:01 +0000 (16:18 -0800)]
kclient: update for ceph_fsid_t
Yehuda Sadeh [Thu, 25 Dec 2008 00:39:59 +0000 (16:39 -0800)]
Merge branch 'unstable' of ssh://ceph.newdream.net/git/ceph into unstable