]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
16 years agoosd: implement GETXATTR read op
Sage Weil [Sat, 4 Apr 2009 21:27:38 +0000 (14:27 -0700)]
osd: implement GETXATTR read op

16 years agokclient: better readdir debug output
Sage Weil [Sat, 4 Apr 2009 04:54:50 +0000 (21:54 -0700)]
kclient: better readdir debug output

16 years agomds: make rdlock_try kick the lock if it blocks
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.

16 years agomds: issue AUTH_EXCL on mkdir
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.

16 years agokclient: drop LINK_RDCACHE cap on rename source inode
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...

16 years agokclient: update cap->mds_wanted on revocation reply
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.

16 years agomds: do not want LINK caps for any open file; no non-FILE caps when readonly
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.

16 years agokclient: drop any unwanted caps when unlinking a file
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.

16 years agokclient: send messages with default priority (to match mds)
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.

16 years agomsgr: show seq # of incoming messages
Sage Weil [Fri, 3 Apr 2009 23:50:23 +0000 (16:50 -0700)]
msgr: show seq # of incoming messages

16 years agomds: alloc wrlock by EXCL client
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...

16 years agomds: don't issue new caps with a revocation
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...

16 years agokclient: queue inode for cap check if mds_wanted mismatch
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...

16 years agomds: fix wanted updates
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!

16 years agomds: clean up issue_new_caps interface
Sage Weil [Fri, 3 Apr 2009 22:28:37 +0000 (15:28 -0700)]
mds: clean up issue_new_caps interface

16 years agokclient: fix session leak
Yehuda Sadeh [Fri, 3 Apr 2009 22:22:47 +0000 (15:22 -0700)]
kclient: fix session leak

16 years agokclient: grab inode before queue_cap_snap; cleanup
Yehuda Sadeh [Fri, 3 Apr 2009 22:03:37 +0000 (15:03 -0700)]
kclient: grab inode before queue_cap_snap; cleanup

16 years agokclient: fix some log messages
Yehuda Sadeh [Fri, 3 Apr 2009 21:58:33 +0000 (14:58 -0700)]
kclient: fix some log messages

16 years agouclient: mksnap/rmsnap via mkdir/rmdir
Sage Weil [Fri, 3 Apr 2009 22:00:20 +0000 (15:00 -0700)]
uclient: mksnap/rmsnap via mkdir/rmdir

16 years agouclient: remove some dead code
Sage Weil [Fri, 3 Apr 2009 21:57:10 +0000 (14:57 -0700)]
uclient: remove some dead code

16 years agokclient: protect realm->inodes_with_caps_lock
Yehuda Sadeh [Fri, 3 Apr 2009 21:51:46 +0000 (14:51 -0700)]
kclient: protect realm->inodes_with_caps_lock

16 years agokclient: protect session->s_caps list with s_cap_lock
Yehuda Sadeh [Fri, 3 Apr 2009 21:05:57 +0000 (14:05 -0700)]
kclient: protect session->s_caps list with s_cap_lock

16 years agokclient: adjust caps accounting a bit
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).

16 years agokclient: link snap dentry for MKSNAP as well as LOOKUPSNAP
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.

16 years agomds: include target inode in mksnap result
Sage Weil [Fri, 3 Apr 2009 21:24:40 +0000 (14:24 -0700)]
mds: include target inode in mksnap result

16 years agokclient: fix readdir dup requests
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.

16 years agouclient: fix up snapped path generation
Sage Weil [Fri, 3 Apr 2009 21:07:15 +0000 (14:07 -0700)]
uclient: fix up snapped path generation

16 years agouclient: fix reply trace
Sage Weil [Fri, 3 Apr 2009 20:27:01 +0000 (13:27 -0700)]
uclient: fix reply trace

16 years agouclient: fix root inode open on mount; fix readdir
Sage Weil [Fri, 3 Apr 2009 20:19:34 +0000 (13:19 -0700)]
uclient: fix root inode open on mount; fix readdir

16 years agouclient: use new mds protocol for replies
Sage Weil [Fri, 3 Apr 2009 20:13:20 +0000 (13:13 -0700)]
uclient: use new mds protocol for replies

A 'walk' now works.

16 years agomds: kill symlink following in the mds; handle this on the client
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

16 years agouclient: big refactoring
Sage Weil [Thu, 2 Apr 2009 22:48:25 +0000 (15:48 -0700)]
uclient: big refactoring

16 years agomds: cleanup
Sage Weil [Fri, 3 Apr 2009 20:05:53 +0000 (13:05 -0700)]
mds: cleanup

16 years agomds: fix open on snapped files
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.)

16 years agomds: fix open on snapped files
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.

16 years agokclient: fix opens on snapped files
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.

16 years agokclient: special case LOOKUPSNAP in fill_trace to add in the dentry
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

16 years agomds: clean up path_traverse vs snap interface
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.

16 years agokclient: send new LOOKUPSNAP opcode
Sage Weil [Fri, 3 Apr 2009 18:34:36 +0000 (11:34 -0700)]
kclient: send new LOOKUPSNAP opcode

16 years agomds: add LOOKUPSNAP op; synthesize snapname dentries in replies
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!).

16 years agomds: make lssnap use new readdir response format
Sage Weil [Fri, 3 Apr 2009 17:52:34 +0000 (10:52 -0700)]
mds: make lssnap use new readdir response format

16 years agokclient: snap snapdir fixes
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.

16 years agokclient: some list handling api cleanup
Yehuda Sadeh [Fri, 3 Apr 2009 17:41:29 +0000 (10:41 -0700)]
kclient: some list handling api cleanup

16 years agokclient: remove leaked preallocated cap releases messages
Yehuda Sadeh [Fri, 3 Apr 2009 17:25:39 +0000 (10:25 -0700)]
kclient: remove leaked preallocated cap releases messages

16 years agokclient: lookup is the only vfs call on which we init the dentry
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

16 years agokclient: don't free dentry private data when dropping lease
Yehuda Sadeh [Thu, 2 Apr 2009 23:57:46 +0000 (16:57 -0700)]
kclient: don't free dentry private data when dropping lease

16 years agokclient: fix compilation error
Yehuda Sadeh [Thu, 2 Apr 2009 22:51:11 +0000 (15:51 -0700)]
kclient: fix compilation error

16 years agokclient: change dentry private data initialization scheme
Yehuda Sadeh [Thu, 2 Apr 2009 22:37:41 +0000 (15:37 -0700)]
kclient: change dentry private data initialization scheme

16 years agoMerge branch 'nofilltrace' into unstable
Sage Weil [Thu, 2 Apr 2009 22:07:39 +0000 (15:07 -0700)]
Merge branch 'nofilltrace' into unstable

16 years agostart v0.7.3
Sage Weil [Thu, 2 Apr 2009 17:46:17 +0000 (10:46 -0700)]
start v0.7.3

16 years agoMerge branch 'master' into unstable v0.7.2
Sage Weil [Thu, 2 Apr 2009 22:06:17 +0000 (15:06 -0700)]
Merge branch 'master' into unstable

16 years agokclient: drop caps in setattr
Sage Weil [Thu, 2 Apr 2009 22:02:22 +0000 (15:02 -0700)]
kclient: drop caps in setattr

16 years agomds: flush log when waiting on xlock
Sage Weil [Thu, 2 Apr 2009 21:59:13 +0000 (14:59 -0700)]
mds: flush log when waiting on xlock

16 years agoMerge branch 'unstable' into nofilltrace
Sage Weil [Thu, 2 Apr 2009 21:46:51 +0000 (14:46 -0700)]
Merge branch 'unstable' into nofilltrace

16 years agokclient: fix mds session check in update_dentry_lease
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.

16 years agokclient: reduce log levels on some messages
Yehuda Sadeh [Thu, 2 Apr 2009 19:21:32 +0000 (12:21 -0700)]
kclient: reduce log levels on some messages

16 years agokclient: merge conflict
Yehuda Sadeh [Thu, 2 Apr 2009 19:20:24 +0000 (12:20 -0700)]
kclient: merge conflict

16 years agokclient: adjust nfs reexport
Yehuda Sadeh [Thu, 2 Apr 2009 19:17:42 +0000 (12:17 -0700)]
kclient: adjust nfs reexport

16 years agokclient: refactor message creation
Yehuda Sadeh [Thu, 2 Apr 2009 19:04:25 +0000 (12:04 -0700)]
kclient: refactor message creation

16 years agoMerge branch 'unstable' into nofilltrace
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

16 years agomon: log quorum on election victory
Sage Weil [Thu, 2 Apr 2009 14:01:46 +0000 (07:01 -0700)]
mon: log quorum on election victory

16 years agokclient: make some get/put_cap res methods static; allow reclaim
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.

16 years agokclient: some cap reservation cleanups
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.

16 years agomon: log monitor election events
Sage Weil [Thu, 2 Apr 2009 13:34:50 +0000 (06:34 -0700)]
mon: log monitor election events

16 years agokclient: remove bad iput from check_delay_caps
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.

16 years agomds: make open() _not_ follow symlinks
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).

16 years agokclient: make ceph_lookup_open on symlink behave
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.

16 years agomds: replace FINDINODE with LOOKUPHASH
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.

16 years agomds: simplify mds command set
Sage Weil [Wed, 1 Apr 2009 21:30:44 +0000 (14:30 -0700)]
mds: simplify mds command set

16 years agokclient: simplify cap flushing
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.

16 years agokclient: fix caps reservation cleanup
Yehuda Sadeh [Wed, 1 Apr 2009 22:06:45 +0000 (15:06 -0700)]
kclient: fix caps reservation cleanup

16 years agokclient: caps bug fixes, less verbose
Yehuda Sadeh [Wed, 1 Apr 2009 21:57:34 +0000 (14:57 -0700)]
kclient: caps bug fixes, less verbose

16 years agokclient: small adjustments
Yehuda Sadeh [Wed, 1 Apr 2009 21:22:54 +0000 (14:22 -0700)]
kclient: small adjustments

16 years agokclient: debugfs for caps reservation system
Yehuda Sadeh [Wed, 1 Apr 2009 21:22:41 +0000 (14:22 -0700)]
kclient: debugfs for caps reservation system

16 years agokclient: caps reservation system
Yehuda Sadeh [Wed, 1 Apr 2009 21:07:33 +0000 (14:07 -0700)]
kclient: caps reservation system

16 years agokclient: flush dirty inodes on sync_fs
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.

16 years agokclient: read each frag over multiple readdir calls, as needed
Sage Weil [Wed, 1 Apr 2009 18:53:49 +0000 (11:53 -0700)]
kclient: read each frag over multiple readdir calls, as needed

16 years agokclient: fix mds reply error codes
Sage Weil [Wed, 1 Apr 2009 17:55:02 +0000 (10:55 -0700)]
kclient: fix mds reply error codes

16 years agomds: include 'last', 'complete' flags in readdir reply
Sage Weil [Wed, 1 Apr 2009 17:54:48 +0000 (10:54 -0700)]
mds: include 'last', 'complete' flags in readdir reply

16 years agomds: kill CEPH_MDS_OP_FSYNC
Sage Weil [Wed, 1 Apr 2009 17:14:04 +0000 (10:14 -0700)]
mds: kill CEPH_MDS_OP_FSYNC

16 years agokclient: fix fill_trace comments
Sage Weil [Wed, 1 Apr 2009 16:16:02 +0000 (09:16 -0700)]
kclient: fix fill_trace comments

16 years agokclient: use kmem_cache for caps
Yehuda Sadeh [Wed, 1 Apr 2009 17:52:41 +0000 (10:52 -0700)]
kclient: use kmem_cache for caps

16 years agokclient: add missing ceph dentry init
Yehuda Sadeh [Wed, 1 Apr 2009 17:12:03 +0000 (10:12 -0700)]
kclient: add missing ceph dentry init

16 years agomds: all request paths must be relative to a non-snapped inode
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

16 years agokclient: generate request paths relative to a non-snapshotted inode
Sage Weil [Wed, 1 Apr 2009 15:18:11 +0000 (08:18 -0700)]
kclient: generate request paths relative to a non-snapshotted inode

16 years agokclient: only flush caps to auth mds. wait in write_inode, if asked.
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.

16 years agotodo
Sage Weil [Tue, 31 Mar 2009 23:14:32 +0000 (16:14 -0700)]
todo

16 years agokclient: roll up setattr helpers into a single function
Sage Weil [Tue, 31 Mar 2009 23:14:21 +0000 (16:14 -0700)]
kclient: roll up setattr helpers into a single function

16 years agomds: roll up various ops into single SETATTR
Sage Weil [Tue, 31 Mar 2009 22:41:55 +0000 (15:41 -0700)]
mds: roll up various ops into single SETATTR

16 years agokclient: small bug fix
Yehuda Sadeh [Tue, 31 Mar 2009 21:57:51 +0000 (14:57 -0700)]
kclient: small bug fix

16 years agokclient: add dentry lru
Yehuda Sadeh [Tue, 31 Mar 2009 21:44:42 +0000 (14:44 -0700)]
kclient: add dentry lru

16 years agokclient: pin inode with FILE_WRBUFFER cap refs
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.

16 years agocaps: track last_issue seq, check on release
Sage Weil [Tue, 31 Mar 2009 20:19:25 +0000 (13:19 -0700)]
caps: track last_issue seq, check on release

16 years agokclient: make ->write_inode() flush dirty caps
Sage Weil [Tue, 31 Mar 2009 19:41:59 +0000 (12:41 -0700)]
kclient: make ->write_inode() flush dirty caps

16 years agomds: leave simplelock in EXCL if there is a loner
Sage Weil [Tue, 31 Mar 2009 19:41:14 +0000 (12:41 -0700)]
mds: leave simplelock in EXCL if there is a loner

16 years agokclient: fix flush_ack cleaned logic
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.

16 years agokclient: drop old_atime cruft
Sage Weil [Tue, 31 Mar 2009 19:08:35 +0000 (12:08 -0700)]
kclient: drop old_atime cruft

16 years agokclient: fix cap_release accounting
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.

16 years agokclient: no need to clean out cap_delay_list
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.

16 years agomds: release caps only via cap_release
Sage Weil [Tue, 31 Mar 2009 18:13:56 +0000 (11:13 -0700)]
mds: release caps only via cap_release