]>
git.apps.os.sepia.ceph.com Git - ceph.git/log
Sage Weil [Sat, 4 Apr 2009 21:27:38 +0000 (14:27 -0700)]
osd: implement GETXATTR read op
Sage Weil [Sat, 4 Apr 2009 04:54:50 +0000 (21:54 -0700)]
kclient: better readdir debug output
Sage Weil [Sat, 4 Apr 2009 04:36:52 +0000 (21:36 -0700)]
mds: make rdlock_try kick the lock if it blocks
We were strangely getting by even though it wasn't changing the lock
state. Weird.
Sage Weil [Sat, 4 Apr 2009 04:27:19 +0000 (21:27 -0700)]
mds: issue AUTH_EXCL on mkdir
Client is clearly an exclusive user, and will often chmod.
Sage Weil [Sat, 4 Apr 2009 04:05:14 +0000 (21:05 -0700)]
kclient: drop LINK_RDCACHE cap on rename source inode
This is only needed because the mds locks the srci linklock. It has to
lock _some_ field on the source inode in order to make and propagate the
ctime change; the linklock is generally the least contended. So humor
the mds...
Sage Weil [Sat, 4 Apr 2009 04:04:11 +0000 (21:04 -0700)]
kclient: update cap->mds_wanted on revocation reply
Make sure our local mds_wanted reflects the value sent off to the mds
during a revocation.
Sage Weil [Sat, 4 Apr 2009 04:03:32 +0000 (21:03 -0700)]
mds: do not want LINK caps for any open file; no non-FILE caps when readonly
When readonly, we don't want anything other than FILE caps. (The mds
will of course give us more when it can.)
For WR and RDWR, we still want AUTH and XATTR caps, for now, since there
is some possibility that the client will want to change them.
Sage Weil [Sat, 4 Apr 2009 03:49:21 +0000 (20:49 -0700)]
kclient: drop any unwanted caps when unlinking a file
Since we can't reopen an unlinked file, there's no reason to hold on to
them. And the MDS will often want to lock to update max_size, which could
mean spurious revocations. At the very least, make sure we drop the LINK
caps.
Do the same for the rename target, if it exists.
Sage Weil [Sat, 4 Apr 2009 03:14:17 +0000 (20:14 -0700)]
kclient: send messages with default priority (to match mds)
Make our default priority match the mds. This is only important because
we occasionally resend and incoming message out again without fixing the
priority to match our default, which means out-of-order processing on
the other end.
Sage Weil [Fri, 3 Apr 2009 23:50:23 +0000 (16:50 -0700)]
msgr: show seq # of incoming messages
Sage Weil [Fri, 3 Apr 2009 23:50:14 +0000 (16:50 -0700)]
mds: alloc wrlock by EXCL client
Not sure why this was off. It is allowed in EXCL_MIX...
Sage Weil [Fri, 3 Apr 2009 23:49:37 +0000 (16:49 -0700)]
mds: don't issue new caps with a revocation
This is a really just a heuristic...
Sage Weil [Fri, 3 Apr 2009 22:45:59 +0000 (15:45 -0700)]
kclient: queue inode for cap check if mds_wanted mismatch
If mds_wanted in add_cap is more than we actually want (for
example, on a getattr that races with a cap wanted release),
requeue a cap check. We don't want to release immediately if we
can help it because something like readdir would prematurely (?)
release caps we're holding on to for good measure...
Sage Weil [Fri, 3 Apr 2009 22:40:15 +0000 (15:40 -0700)]
mds: fix wanted updates
Check issue_seq, not seq, for wanted updates. We're primarily
worried about racing against a lookup+open, which means we only
need to worry about an _issue_ (not a cap grant or revocation).
Allow wanted _expansion_ even if seq mismatch, though!
Sage Weil [Fri, 3 Apr 2009 22:28:37 +0000 (15:28 -0700)]
mds: clean up issue_new_caps interface
Yehuda Sadeh [Fri, 3 Apr 2009 22:22:47 +0000 (15:22 -0700)]
kclient: fix session leak
Yehuda Sadeh [Fri, 3 Apr 2009 22:03:37 +0000 (15:03 -0700)]
kclient: grab inode before queue_cap_snap; cleanup
Yehuda Sadeh [Fri, 3 Apr 2009 21:58:33 +0000 (14:58 -0700)]
kclient: fix some log messages
Sage Weil [Fri, 3 Apr 2009 22:00:20 +0000 (15:00 -0700)]
uclient: mksnap/rmsnap via mkdir/rmdir
Sage Weil [Fri, 3 Apr 2009 21:57:10 +0000 (14:57 -0700)]
uclient: remove some dead code
Yehuda Sadeh [Fri, 3 Apr 2009 21:51:46 +0000 (14:51 -0700)]
kclient: protect realm->inodes_with_caps_lock
Yehuda Sadeh [Fri, 3 Apr 2009 21:05:57 +0000 (14:05 -0700)]
kclient: protect session->s_caps list with s_cap_lock
Sage Weil [Fri, 3 Apr 2009 21:54:23 +0000 (14:54 -0700)]
kclient: adjust caps accounting a bit
Keep track of caps avail (size of caps reserve list).
Sage Weil [Fri, 3 Apr 2009 21:25:29 +0000 (14:25 -0700)]
kclient: link snap dentry for MKSNAP as well as LOOKUPSNAP
Also, set is_dentry = 1 to prevent the notrace handler(s) from doing
another lookup.
Sage Weil [Fri, 3 Apr 2009 21:24:40 +0000 (14:24 -0700)]
mds: include target inode in mksnap result
Sage Weil [Fri, 3 Apr 2009 21:24:26 +0000 (14:24 -0700)]
kclient: fix readdir dup requests
We want to request a new frag if the offset is _before_ the one we
have cached (i.e., we need to back up or start over). Not after.
This was making a final readdir at the end of the directory do
an extra mds request. Der.
Sage Weil [Fri, 3 Apr 2009 21:07:15 +0000 (14:07 -0700)]
uclient: fix up snapped path generation
Sage Weil [Fri, 3 Apr 2009 20:27:01 +0000 (13:27 -0700)]
uclient: fix reply trace
Sage Weil [Fri, 3 Apr 2009 20:19:34 +0000 (13:19 -0700)]
uclient: fix root inode open on mount; fix readdir
Sage Weil [Fri, 3 Apr 2009 20:13:20 +0000 (13:13 -0700)]
uclient: use new mds protocol for replies
A 'walk' now works.
Sage Weil [Fri, 3 Apr 2009 19:21:24 +0000 (12:21 -0700)]
mds: kill symlink following in the mds; handle this on the client
Sage Weil [Thu, 2 Apr 2009 22:48:25 +0000 (15:48 -0700)]
uclient: big refactoring
Sage Weil [Fri, 3 Apr 2009 20:05:53 +0000 (13:05 -0700)]
mds: cleanup
Sage Weil [Fri, 3 Apr 2009 20:05:49 +0000 (13:05 -0700)]
mds: fix open on snapped files
rdlock the filelock to make sure we get the snapped metadata. Also
make sure the filelock is SYNC so that the data ends up on disk.
(On the auth mds, we may rdlock by going to LOCK state.)
Sage Weil [Fri, 3 Apr 2009 20:04:26 +0000 (13:04 -0700)]
mds: fix open on snapped files
Return a dentry only if requested.
Sage Weil [Fri, 3 Apr 2009 20:03:17 +0000 (13:03 -0700)]
kclient: fix opens on snapped files
We just need to check i_snap_caps. If we don't have what we want
(all of it), ask the MDS, who will do the locking necessary to get
data/metadata flushed and issue us the (immutable) caps we want.
Sage Weil [Fri, 3 Apr 2009 19:17:25 +0000 (12:17 -0700)]
kclient: special case LOOKUPSNAP in fill_trace to add in the dentry
Sage Weil [Fri, 3 Apr 2009 19:16:58 +0000 (12:16 -0700)]
mds: clean up path_traverse vs snap interface
Keep snap traversal info in the MDRequest.
Don't fake the snap dentry; let the client fill it in.
Sage Weil [Fri, 3 Apr 2009 18:34:36 +0000 (11:34 -0700)]
kclient: send new LOOKUPSNAP opcode
Sage Weil [Fri, 3 Apr 2009 18:34:08 +0000 (11:34 -0700)]
mds: add LOOKUPSNAP op; synthesize snapname dentries in replies
The path_traverse verses snap interface still needs cleanup (and
follow_sym can go away!).
Sage Weil [Fri, 3 Apr 2009 17:52:34 +0000 (10:52 -0700)]
mds: make lssnap use new readdir response format
Sage Weil [Fri, 3 Apr 2009 17:52:24 +0000 (10:52 -0700)]
kclient: snap snapdir fixes
Trivially open anything snapped.
Always successfully revalidate snapdir dentry.
Yehuda Sadeh [Fri, 3 Apr 2009 17:41:29 +0000 (10:41 -0700)]
kclient: some list handling api cleanup
Yehuda Sadeh [Fri, 3 Apr 2009 17:25:39 +0000 (10:25 -0700)]
kclient: remove leaked preallocated cap releases messages
Yehuda Sadeh [Fri, 3 Apr 2009 00:02:00 +0000 (17:02 -0700)]
kclient: lookup is the only vfs call on which we init the dentry
Yehuda Sadeh [Thu, 2 Apr 2009 23:57:46 +0000 (16:57 -0700)]
kclient: don't free dentry private data when dropping lease
Yehuda Sadeh [Thu, 2 Apr 2009 22:51:11 +0000 (15:51 -0700)]
kclient: fix compilation error
Yehuda Sadeh [Thu, 2 Apr 2009 22:37:41 +0000 (15:37 -0700)]
kclient: change dentry private data initialization scheme
Sage Weil [Thu, 2 Apr 2009 22:07:39 +0000 (15:07 -0700)]
Merge branch 'nofilltrace' into unstable
Sage Weil [Thu, 2 Apr 2009 17:46:17 +0000 (10:46 -0700)]
start v0.7.3
Sage Weil [Thu, 2 Apr 2009 22:06:17 +0000 (15:06 -0700)]
Merge branch 'master' into unstable
Sage Weil [Thu, 2 Apr 2009 22:02:22 +0000 (15:02 -0700)]
kclient: drop caps in setattr
Sage Weil [Thu, 2 Apr 2009 21:59:13 +0000 (14:59 -0700)]
mds: flush log when waiting on xlock
Sage Weil [Thu, 2 Apr 2009 21:46:51 +0000 (14:46 -0700)]
Merge branch 'unstable' into nofilltrace
Sage Weil [Thu, 2 Apr 2009 21:44:44 +0000 (14:44 -0700)]
kclient: fix mds session check in update_dentry_lease
di->lease_session may be null, since we now have di's without
leases.
Yehuda Sadeh [Thu, 2 Apr 2009 19:21:32 +0000 (12:21 -0700)]
kclient: reduce log levels on some messages
Yehuda Sadeh [Thu, 2 Apr 2009 19:20:24 +0000 (12:20 -0700)]
kclient: merge conflict
Yehuda Sadeh [Thu, 2 Apr 2009 19:17:42 +0000 (12:17 -0700)]
kclient: adjust nfs reexport
Yehuda Sadeh [Thu, 2 Apr 2009 19:04:25 +0000 (12:04 -0700)]
kclient: refactor message creation
Sage Weil [Thu, 2 Apr 2009 17:37:59 +0000 (10:37 -0700)]
Merge branch 'unstable' into nofilltrace
Conflicts:
src/TODO
src/kernel/debugfs.c
src/kernel/mds_client.c
Sage Weil [Thu, 2 Apr 2009 14:01:46 +0000 (07:01 -0700)]
mon: log quorum on election victory
Sage Weil [Thu, 2 Apr 2009 17:01:54 +0000 (10:01 -0700)]
kclient: make some get/put_cap res methods static; allow reclaim
Allow a released cap to be put in a reservation context.
Sage Weil [Thu, 2 Apr 2009 16:48:49 +0000 (09:48 -0700)]
kclient: some cap reservation cleanups
Simplify interface a bit. Do not use reserved caps if a ctx is
not provided (eventually that one caller will be fixed).
Remove some whitespace.
Sage Weil [Thu, 2 Apr 2009 13:34:50 +0000 (06:34 -0700)]
mon: log monitor election events
Sage Weil [Wed, 1 Apr 2009 22:54:40 +0000 (15:54 -0700)]
kclient: remove bad iput from check_delay_caps
We no longer take an inode ref when putting the inode on the
cap_delay list.
Sage Weil [Wed, 1 Apr 2009 22:18:44 +0000 (15:18 -0700)]
mds: make open() _not_ follow symlinks
This is needed to make the lookup_open intent thing work for the
kclient. If we try to open a file that isn't a dir or file, do
not set the cap wanted bits (i.e., behave like a lookup/getattr).
Sage Weil [Wed, 1 Apr 2009 22:17:42 +0000 (15:17 -0700)]
kclient: make ceph_lookup_open on symlink behave
Don't initialize the struct file if we are a symlink. The lookup
will be followed by an open, which will do the right thing.
This fix assumes that we don't ever call open on an actual symlink.
Sage Weil [Wed, 1 Apr 2009 21:52:13 +0000 (14:52 -0700)]
mds: replace FINDINODE with LOOKUPHASH
The nfs export code still needs to be fixed.
Sage Weil [Wed, 1 Apr 2009 21:30:44 +0000 (14:30 -0700)]
mds: simplify mds command set
Sage Weil [Wed, 1 Apr 2009 21:26:27 +0000 (14:26 -0700)]
kclient: simplify cap flushing
Track flushing caps globally.
We still need to add a mechanism to reflush if the mds session
drops, or if the cap gets migrated. We will know i_flushing_caps
is us if we are/were i_auth_cap.
Yehuda Sadeh [Wed, 1 Apr 2009 22:06:45 +0000 (15:06 -0700)]
kclient: fix caps reservation cleanup
Yehuda Sadeh [Wed, 1 Apr 2009 21:57:34 +0000 (14:57 -0700)]
kclient: caps bug fixes, less verbose
Yehuda Sadeh [Wed, 1 Apr 2009 21:22:54 +0000 (14:22 -0700)]
kclient: small adjustments
Yehuda Sadeh [Wed, 1 Apr 2009 21:22:41 +0000 (14:22 -0700)]
kclient: debugfs for caps reservation system
Yehuda Sadeh [Wed, 1 Apr 2009 21:07:33 +0000 (14:07 -0700)]
kclient: caps reservation system
Sage Weil [Wed, 1 Apr 2009 20:52:59 +0000 (13:52 -0700)]
kclient: flush dirty inodes on sync_fs
Maintain dirty and sync inode lists. When inode is dirtied,
make sure inode is on VFS dirty lists (so the vfs will write it
out for us). When we flush caps, add to sync list.
On sync_fs, wait for sync list to drain. (Lists are separate to
avoid starving a sync with newly dirtied inodes.)
Remove old unmount cap check cruft... once the sb goes read-only
we know all the dirty cap data has been flushed.
Sage Weil [Wed, 1 Apr 2009 18:53:49 +0000 (11:53 -0700)]
kclient: read each frag over multiple readdir calls, as needed
Sage Weil [Wed, 1 Apr 2009 17:55:02 +0000 (10:55 -0700)]
kclient: fix mds reply error codes
Sage Weil [Wed, 1 Apr 2009 17:54:48 +0000 (10:54 -0700)]
mds: include 'last', 'complete' flags in readdir reply
Sage Weil [Wed, 1 Apr 2009 17:14:04 +0000 (10:14 -0700)]
mds: kill CEPH_MDS_OP_FSYNC
Sage Weil [Wed, 1 Apr 2009 16:16:02 +0000 (09:16 -0700)]
kclient: fix fill_trace comments
Yehuda Sadeh [Wed, 1 Apr 2009 17:52:41 +0000 (10:52 -0700)]
kclient: use kmem_cache for caps
Yehuda Sadeh [Wed, 1 Apr 2009 17:12:03 +0000 (10:12 -0700)]
kclient: add missing ceph dentry init
Sage Weil [Wed, 1 Apr 2009 15:18:51 +0000 (08:18 -0700)]
mds: all request paths must be relative to a non-snapped inode
Sage Weil [Wed, 1 Apr 2009 15:18:11 +0000 (08:18 -0700)]
kclient: generate request paths relative to a non-snapshotted inode
Sage Weil [Wed, 1 Apr 2009 14:02:14 +0000 (07:02 -0700)]
kclient: only flush caps to auth mds. wait in write_inode, if asked.
Sage Weil [Tue, 31 Mar 2009 23:14:32 +0000 (16:14 -0700)]
todo
Sage Weil [Tue, 31 Mar 2009 23:14:21 +0000 (16:14 -0700)]
kclient: roll up setattr helpers into a single function
Sage Weil [Tue, 31 Mar 2009 22:41:55 +0000 (15:41 -0700)]
mds: roll up various ops into single SETATTR
Yehuda Sadeh [Tue, 31 Mar 2009 21:57:51 +0000 (14:57 -0700)]
kclient: small bug fix
Yehuda Sadeh [Tue, 31 Mar 2009 21:44:42 +0000 (14:44 -0700)]
kclient: add dentry lru
Sage Weil [Tue, 31 Mar 2009 21:39:39 +0000 (14:39 -0700)]
kclient: pin inode with FILE_WRBUFFER cap refs
This avoids the variety of ugly issues that come up with an iput()
has to wait for writeback.
Sage Weil [Tue, 31 Mar 2009 20:19:25 +0000 (13:19 -0700)]
caps: track last_issue seq, check on release
Sage Weil [Tue, 31 Mar 2009 19:41:59 +0000 (12:41 -0700)]
kclient: make ->write_inode() flush dirty caps
Sage Weil [Tue, 31 Mar 2009 19:41:14 +0000 (12:41 -0700)]
mds: leave simplelock in EXCL if there is a loner
Sage Weil [Tue, 31 Mar 2009 19:34:52 +0000 (12:34 -0700)]
kclient: fix flush_ack cleaned logic
We cleaned the bits we said were dirty. It has nothing to do with
whether we also released them.
Sage Weil [Tue, 31 Mar 2009 19:08:35 +0000 (12:08 -0700)]
kclient: drop old_atime cruft
Sage Weil [Tue, 31 Mar 2009 18:23:24 +0000 (11:23 -0700)]
kclient: fix cap_release accounting
Count num caps we can release, not messages.
Sage Weil [Tue, 31 Mar 2009 18:14:33 +0000 (11:14 -0700)]
kclient: no need to clean out cap_delay_list
Inodes get removed from __remove_cap. And there are no pins, so
we don't interfere with umount.
Sage Weil [Tue, 31 Mar 2009 18:13:56 +0000 (11:13 -0700)]
mds: release caps only via cap_release