]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
16 years agokclient: fix blob size initalization
Yehuda Sadeh [Fri, 17 Apr 2009 23:41:59 +0000 (16:41 -0700)]
kclient: fix blob size initalization

16 years agomds: add/remove inodes to/from open file list based on wanted caps changes
Sage Weil [Fri, 17 Apr 2009 23:00:50 +0000 (16:00 -0700)]
mds: add/remove inodes to/from open file list based on wanted caps changes

We only want to track "open" files for things the client will have open
file handles for.  The rest we will recover opportunistically...

16 years agomds: fix file_excl() call preconditions
Sage Weil [Fri, 17 Apr 2009 22:59:02 +0000 (15:59 -0700)]
mds: fix file_excl() call preconditions

We could have filelock in LOCK_EXCL but no loner.. maybe..

16 years agomds: avoid dup locallock wrlocks
Sage Weil [Fri, 17 Apr 2009 22:57:33 +0000 (15:57 -0700)]
mds: avoid dup locallock wrlocks

16 years agokclient: reorder setxattr to avoid race
Yehuda Sadeh [Fri, 17 Apr 2009 23:00:36 +0000 (16:00 -0700)]
kclient: reorder setxattr to avoid race

16 years agokclient: removexattr marks inode dirty when required
Yehuda Sadeh [Fri, 17 Apr 2009 19:46:41 +0000 (12:46 -0700)]
kclient: removexattr marks inode dirty when required

16 years agokclient: break I_NODELAY into NODELAY and FLUSH
Sage Weil [Fri, 17 Apr 2009 19:26:44 +0000 (12:26 -0700)]
kclient: break I_NODELAY into NODELAY and FLUSH

FLUSH indicates the inode should be flushed asap.  That is, we
should send a cap message with the dirty metadata.  It's set
by write_inode.

NODELAY means we shouldn't delay our cap/wanted release when we
do send a message.  It's set for unlinked files.

16 years agomds: rewrite scatter_tempsync
Sage Weil [Fri, 17 Apr 2009 18:28:28 +0000 (11:28 -0700)]
mds: rewrite scatter_tempsync

Recall caps, among other things.

16 years agovstart: selectively run mds through valgrind
Sage Weil [Fri, 17 Apr 2009 18:10:19 +0000 (11:10 -0700)]
vstart: selectively run mds through valgrind

16 years agomds: drop unused mdr->cap
Sage Weil [Fri, 17 Apr 2009 18:10:10 +0000 (11:10 -0700)]
mds: drop unused mdr->cap

16 years agomds: remove debug msg
Sage Weil [Fri, 17 Apr 2009 18:02:53 +0000 (11:02 -0700)]
mds: remove debug msg

16 years agokclient: helpers for mount options
Sage Weil [Fri, 17 Apr 2009 17:30:27 +0000 (10:30 -0700)]
kclient: helpers for mount options

16 years agokclient: fix dcache readdir bug; add mount option to turn it off
Sage Weil [Fri, 17 Apr 2009 17:23:21 +0000 (10:23 -0700)]
kclient: fix dcache readdir bug; add mount option to turn it off

16 years agomds: init var
Sage Weil [Fri, 17 Apr 2009 17:17:30 +0000 (10:17 -0700)]
mds: init var

16 years agokclient: setxattr cleanups
Sage Weil [Fri, 17 Apr 2009 17:10:04 +0000 (10:10 -0700)]
kclient: setxattr cleanups

Do dirty stuff inside i_lock.
Reuse retry label after successful allocation.

16 years agomds: issue all caps we can (except RD|WR on dirs)
Sage Weil [Fri, 17 Apr 2009 16:42:56 +0000 (09:42 -0700)]
mds: issue all caps we can (except RD|WR on dirs)

Might as well.

Most importantly, it means we issue EXCL caps on directories that
clients are using.

16 years agomds: fix snap.c debug prefix
Sage Weil [Fri, 17 Apr 2009 16:36:44 +0000 (09:36 -0700)]
mds: fix snap.c debug prefix

16 years agokclient: drop RD, WR caps on file lock setattr
Sage Weil [Fri, 17 Apr 2009 16:36:35 +0000 (09:36 -0700)]
kclient: drop RD, WR caps on file lock setattr

The mds will move to LOCK state, which will revoke them anyway.

16 years agomds: use actual cap wanted, not requested
Sage Weil [Fri, 17 Apr 2009 16:28:11 +0000 (09:28 -0700)]
mds: use actual cap wanted, not requested

(The wanted update doesn't always succeed.)

16 years agomds: allow request_release to update wanted; do so if I_NODELAY
Sage Weil [Fri, 17 Apr 2009 16:15:36 +0000 (09:15 -0700)]
mds: allow request_release to update wanted; do so if I_NODELAY

16 years agokclient: fix up cap timeouts
Sage Weil [Fri, 17 Apr 2009 15:44:46 +0000 (08:44 -0700)]
kclient: fix up cap timeouts

16 years agomds, kclient: fix issue_seq vs seq, limit dup cap messages
Sage Weil [Fri, 17 Apr 2009 15:44:31 +0000 (08:44 -0700)]
mds, kclient: fix issue_seq vs seq, limit dup cap messages

16 years agomds: consolidate calls to issue_caps
Sage Weil [Fri, 17 Apr 2009 14:35:52 +0000 (07:35 -0700)]
mds: consolidate calls to issue_caps

16 years agokclient: silence down log messages
Yehuda Sadeh [Thu, 16 Apr 2009 23:01:50 +0000 (16:01 -0700)]
kclient: silence down log messages

16 years agokclient: add missing initialization
Yehuda Sadeh [Thu, 16 Apr 2009 22:48:45 +0000 (15:48 -0700)]
kclient: add missing initialization

16 years agokclient: fix xattrs cap message
Yehuda Sadeh [Thu, 16 Apr 2009 22:45:14 +0000 (15:45 -0700)]
kclient: fix xattrs cap message

16 years agokclient: merge asyncxattr
Yehuda Sadeh [Thu, 16 Apr 2009 21:46:22 +0000 (14:46 -0700)]
kclient: merge asyncxattr

16 years agokclient: refactor setxattr, listxattr
Yehuda Sadeh [Thu, 16 Apr 2009 20:39:37 +0000 (13:39 -0700)]
kclient: refactor setxattr, listxattr

16 years agokclient: fix removexattr
Yehuda Sadeh [Thu, 16 Apr 2009 17:20:09 +0000 (10:20 -0700)]
kclient: fix removexattr

16 years agokclient: fix some leaks
Yehuda Sadeh [Wed, 15 Apr 2009 23:20:02 +0000 (16:20 -0700)]
kclient: fix some leaks

16 years agokclient: xattrs, selective rb erasing, fix tree tear down
Yehuda Sadeh [Wed, 15 Apr 2009 23:01:06 +0000 (16:01 -0700)]
kclient: xattrs, selective rb erasing, fix tree tear down

16 years agokclient: make listxattr actually work
Yehuda Sadeh [Wed, 15 Apr 2009 22:12:05 +0000 (15:12 -0700)]
kclient: make listxattr actually work

16 years agokclient: xattr name length fixes
Yehuda Sadeh [Wed, 15 Apr 2009 21:24:53 +0000 (14:24 -0700)]
kclient: xattr name length fixes

16 years agokclient: initialize xattrs version
Yehuda Sadeh [Wed, 15 Apr 2009 21:00:29 +0000 (14:00 -0700)]
kclient: initialize xattrs version

16 years agokclient: send xattr name on setxattr
Yehuda Sadeh [Wed, 15 Apr 2009 18:43:47 +0000 (11:43 -0700)]
kclient: send xattr name on setxattr

16 years agokclient: verbose xattrs
Yehuda Sadeh [Wed, 15 Apr 2009 17:37:19 +0000 (10:37 -0700)]
kclient: verbose xattrs

16 years agokclient: list, get cached xattrs
Yehuda Sadeh [Tue, 14 Apr 2009 23:58:15 +0000 (16:58 -0700)]
kclient: list, get cached xattrs

16 years agokclient: don't copy null xattrs blob
Yehuda Sadeh [Tue, 14 Apr 2009 22:12:38 +0000 (15:12 -0700)]
kclient: don't copy null xattrs blob

16 years agokclient: send xattrs blob when dropping xattr rdcache
Yehuda Sadeh [Tue, 14 Apr 2009 22:11:27 +0000 (15:11 -0700)]
kclient: send xattrs blob when dropping xattr rdcache

16 years agokclient: preallocated buffer for the xattr blob
Yehuda Sadeh [Mon, 13 Apr 2009 23:39:11 +0000 (16:39 -0700)]
kclient: preallocated buffer for the xattr blob

16 years agokclient: xattrs cleanup, preallocate xattr structure
Yehuda Sadeh [Mon, 13 Apr 2009 20:07:26 +0000 (13:07 -0700)]
kclient: xattrs cleanup, preallocate xattr structure

16 years agokclient: don't rebuild xattr rbtree if exists
Yehuda Sadeh [Fri, 10 Apr 2009 23:37:52 +0000 (16:37 -0700)]
kclient: don't rebuild xattr rbtree if exists

16 years agokclient: fix some more xattr stuff, basic stuff works
Yehuda Sadeh [Fri, 10 Apr 2009 23:36:34 +0000 (16:36 -0700)]
kclient: fix some more xattr stuff, basic stuff works

16 years agokclient: some more xattr fixes
Yehuda Sadeh [Fri, 10 Apr 2009 23:01:55 +0000 (16:01 -0700)]
kclient: some more xattr fixes

16 years agokclient: xattr initalization and bug fixes
Yehuda Sadeh [Fri, 10 Apr 2009 22:54:38 +0000 (15:54 -0700)]
kclient: xattr initalization and bug fixes

16 years agokclient: xattr uses rbtree for indexing
Yehuda Sadeh [Fri, 10 Apr 2009 22:24:52 +0000 (15:24 -0700)]
kclient: xattr uses rbtree for indexing

16 years agomds: fix CInode::get_caps_wanted to do the shift on returned mask
Sage Weil [Thu, 16 Apr 2009 21:25:59 +0000 (14:25 -0700)]
mds: fix CInode::get_caps_wanted to do the shift on returned mask

16 years agomds: move simplelocks (auth, xattr) to EXCL in simple_eval
Sage Weil [Thu, 16 Apr 2009 21:12:21 +0000 (14:12 -0700)]
mds: move simplelocks (auth, xattr) to EXCL in simple_eval

Also move xattr lock to EXCL state on mkdir, create.

16 years agokclient: assign meaningful readdir offset to client-created dentry
Sage Weil [Wed, 15 Apr 2009 23:30:11 +0000 (16:30 -0700)]
kclient: assign meaningful readdir offset to client-created dentry

Set i_max_offset when I_COMPLETE flag is set.  Thereafter, and local
negative lookups will get the next unused offset.

Not coherent if we fall back to talking to the MDS.

16 years agomds: add mds_max_mem conf item, hook to check memory utilization
Sage Weil [Wed, 15 Apr 2009 23:14:10 +0000 (16:14 -0700)]
mds: add mds_max_mem conf item, hook to check memory utilization

16 years agomds: trim cache during tick, not every request
Sage Weil [Wed, 15 Apr 2009 22:18:06 +0000 (15:18 -0700)]
mds: trim cache during tick, not every request

More efficient

16 years agomds: put mds format magic in root inode, journal; check on start, replay
Sage Weil [Wed, 15 Apr 2009 22:07:04 +0000 (15:07 -0700)]
mds: put mds format magic in root inode, journal; check on start, replay

16 years agocontext: return error from C_Gather
Sage Weil [Wed, 15 Apr 2009 22:04:28 +0000 (15:04 -0700)]
context: return error from C_Gather

16 years agomds: kill rdcaps code
Sage Weil [Wed, 15 Apr 2009 21:29:26 +0000 (14:29 -0700)]
mds: kill rdcaps code

Since caps no longer time out, we no longer need to maintain an rdcaps
lru.  Good riddance.

16 years agomds: count caps, inodes with caps
Sage Weil [Wed, 15 Apr 2009 21:24:33 +0000 (14:24 -0700)]
mds: count caps, inodes with caps

16 years agotodo
Sage Weil [Wed, 15 Apr 2009 20:59:09 +0000 (13:59 -0700)]
todo

16 years agokclient: fix up dcache readdir
Sage Weil [Wed, 15 Apr 2009 20:58:55 +0000 (13:58 -0700)]
kclient: fix up dcache readdir

Code should behave with frags and seeks, though both are untested :).

16 years agokclient: initialize xattrs version
Yehuda Sadeh [Wed, 15 Apr 2009 21:01:38 +0000 (14:01 -0700)]
kclient: initialize xattrs version

16 years agokclient: send xattr name in setxattr
Yehuda Sadeh [Wed, 15 Apr 2009 19:45:50 +0000 (12:45 -0700)]
kclient: send xattr name in setxattr

16 years agouclient: make O_CREAT work
Sage Weil [Wed, 15 Apr 2009 14:53:41 +0000 (07:53 -0700)]
uclient: make O_CREAT work

16 years agokclient: do readdir from dcache when possible
Sage Weil [Tue, 14 Apr 2009 16:20:36 +0000 (09:20 -0700)]
kclient: do readdir from dcache when possible

If we have I_COMPLETE, do a readdir straight from the dcache.  When
we do a readdir prepopulate, reorder parent->d_subdirs to match the
mds order, so that the dcache readdir order matches.

Some wonkiness here to detect the end of directory.  There is also
some inconsistency if the directory changes mid-readdir and we
have to switch back to talking to the mds.

16 years agofilestore: clean up attr name, path buffer lengths
Sage Weil [Tue, 14 Apr 2009 20:45:28 +0000 (13:45 -0700)]
filestore: clean up attr name, path buffer lengths

16 years agofilestore: make path buffers longer
Sage Weil [Tue, 14 Apr 2009 19:45:28 +0000 (12:45 -0700)]
filestore: make path buffers longer

16 years agoscripts: fix mds and osd request latency checkers
Sage Weil [Tue, 14 Apr 2009 15:24:54 +0000 (08:24 -0700)]
scripts: fix mds and osd request latency checkers

16 years agomds: flush log in do_cap_update if there are unissued but wanted caps
Sage Weil [Tue, 14 Apr 2009 15:04:28 +0000 (08:04 -0700)]
mds: flush log in do_cap_update if there are unissued but wanted caps

16 years agomds: issue caps as needed in xlock_finish
Sage Weil [Tue, 14 Apr 2009 15:00:48 +0000 (08:00 -0700)]
mds: issue caps as needed in xlock_finish

We don't leave xlockdone via eval_gather, so we need a special call
to issue_caps.

16 years agodebug: make log symlinks relative if dirs match
Sage Weil [Tue, 14 Apr 2009 14:51:48 +0000 (07:51 -0700)]
debug: make log symlinks relative if dirs match

16 years agomds: eval_gather on cap removal
Sage Weil [Tue, 14 Apr 2009 14:44:14 +0000 (07:44 -0700)]
mds: eval_gather on cap removal

This fixes a purge_stray problem with a lingering auth_pin (due
to an unstable lock).

16 years agomds: never issue caps in file_eval
Sage Weil [Tue, 14 Apr 2009 14:29:38 +0000 (07:29 -0700)]
mds: never issue caps in file_eval

We should do it explicitly when it is appropriate.  Normally, that's
in eval_gather(), or when caps wanted changes, or something
similar.

When we explicitly issue caps, avoid scanning the whole list when
possible.

16 years agomds: hide stray dentries and inodes that are purging
Sage Weil [Tue, 14 Apr 2009 13:48:51 +0000 (06:48 -0700)]
mds: hide stray dentries and inodes that are purging

Otherwise we get unwanted references when the inode is supposed to
die.

16 years agomds: reorder some code
Sage Weil [Mon, 13 Apr 2009 17:04:36 +0000 (10:04 -0700)]
mds: reorder some code

16 years agomds: use rdlock_path_* for rename; fix helper paths
Sage Weil [Mon, 13 Apr 2009 16:35:30 +0000 (09:35 -0700)]
mds: use rdlock_path_* for rename; fix helper paths

16 years agomds: make dn vec accurate after rdlock_path_xlock_dentry
Sage Weil [Mon, 13 Apr 2009 14:09:52 +0000 (07:09 -0700)]
mds: make dn vec accurate after rdlock_path_xlock_dentry

16 years agomds: store up to two paths in MDRequest; generalize rdlock_path_*
Sage Weil [Sun, 12 Apr 2009 21:49:51 +0000 (14:49 -0700)]
mds: store up to two paths in MDRequest; generalize rdlock_path_*

Eventually we want to use those helpers for _both_ arguments of rename,
link.

16 years agomds: kill mdr->ref_snapdiri
Sage Weil [Sun, 12 Apr 2009 21:24:21 +0000 (14:24 -0700)]
mds: kill mdr->ref_snapdiri

The client handles the nosnap->snap namespace transition.

16 years agomds: move done_locking into acquire_locks
Sage Weil [Sun, 12 Apr 2009 21:19:45 +0000 (14:19 -0700)]
mds: move done_locking into acquire_locks

Be consistent.

16 years agomds: acquire_locks in callers, not rdlock_path_* helpers
Sage Weil [Sun, 12 Apr 2009 21:12:13 +0000 (14:12 -0700)]
mds: acquire_locks in callers, not rdlock_path_* helpers

This way we only call acquire_locks from one place, and avoid weird lock
reordering issues.

16 years agomds: refactor path_traverse, callers
Sage Weil [Sat, 11 Apr 2009 21:55:09 +0000 (14:55 -0700)]
mds: refactor path_traverse, callers

Mainly, we want path_traverse to do the work of giving us back the inode
the final dentry links to.  Simplify callers to use it.

16 years agotodo
Sage Weil [Sat, 11 Apr 2009 21:13:41 +0000 (14:13 -0700)]
todo

16 years agovstart: behave a bit better when sudoing
Sage Weil [Mon, 13 Apr 2009 17:19:47 +0000 (10:19 -0700)]
vstart: behave a bit better when sudoing

16 years agokclient: allocate cap releases outside of spinlock
Sage Weil [Mon, 13 Apr 2009 17:16:24 +0000 (10:16 -0700)]
kclient: allocate cap releases outside of spinlock

16 years agokclient: use FLUSH cap op on cap writeback
Sage Weil [Fri, 10 Apr 2009 22:59:11 +0000 (15:59 -0700)]
kclient: use FLUSH cap op on cap writeback

This is just to make the message logs easier to read.  The only
real distinction is that a FLUSH won't release caps, only write
dirty ones back.

16 years agokclient: only check auth cap for WRBUFFER, max_size checks
Sage Weil [Fri, 10 Apr 2009 21:03:02 +0000 (14:03 -0700)]
kclient: only check auth cap for WRBUFFER, max_size checks

16 years agokclient: switch check_caps interface to use flags field
Sage Weil [Fri, 10 Apr 2009 20:57:32 +0000 (13:57 -0700)]
kclient: switch check_caps interface to use flags field

16 years agokclient: fix setxattr
Sage Weil [Fri, 10 Apr 2009 20:53:38 +0000 (13:53 -0700)]
kclient: fix setxattr

This was broken ages ago with the mds client interface was switched
up a bit.

16 years agokclient: kill ceph_release_caps and check_caps drop arg
Sage Weil [Fri, 10 Apr 2009 20:42:37 +0000 (13:42 -0700)]
kclient: kill ceph_release_caps and check_caps drop arg

16 years agokclient: fix up cap/wanted delayed release logic
Sage Weil [Fri, 10 Apr 2009 20:27:11 +0000 (13:27 -0700)]
kclient: fix up cap/wanted delayed release logic

16 years agomds: don't reissue caps on embedded request releases
Sage Weil [Fri, 10 Apr 2009 20:26:37 +0000 (13:26 -0700)]
mds: don't reissue caps on embedded request releases

16 years agomds: default to issue_caps in file_eval, _unless_ we are dropping caps
Sage Weil [Fri, 10 Apr 2009 04:10:44 +0000 (21:10 -0700)]
mds: default to issue_caps in file_eval, _unless_ we are dropping caps

16 years agomon: make log messages a bit nicer
Sage Weil [Fri, 10 Apr 2009 00:04:33 +0000 (17:04 -0700)]
mon: make log messages a bit nicer

16 years agomds: journal max_size update as loner, if any
Sage Weil [Thu, 9 Apr 2009 23:40:35 +0000 (16:40 -0700)]
mds: journal max_size update as loner, if any

This avoids calling file_excl if the lock is already LOCK_EXCL.

16 years agokclient: less chatty
Sage Weil [Thu, 9 Apr 2009 23:28:53 +0000 (16:28 -0700)]
kclient: less chatty

16 years agomds: include cap, dentry lease release in request messages
Sage Weil [Thu, 9 Apr 2009 22:28:11 +0000 (15:28 -0700)]
mds: include cap, dentry lease release in request messages

Embed dentry and cap releases inside mds request messages.  This
avoids the overhead of sending additional messages, although it
does limit the release to the mds the request is going to.  That
is normally fine, since updates go to the auth MDS, and that is
usually who we're dealing with.

16 years agomds: avoid dup change_max in _do_cap_update
Sage Weil [Thu, 9 Apr 2009 22:16:37 +0000 (15:16 -0700)]
mds: avoid dup change_max in _do_cap_update

Set a flag to prevent issue_caps from checking the max_size (since
we're about to journal that update anyway).  This avoids some dup
cap messages.

16 years agokclient: dequeue cap on non-drop send caps
Sage Weil [Thu, 9 Apr 2009 21:49:11 +0000 (14:49 -0700)]
kclient: dequeue cap on non-drop send caps

If we are doing a full update (i.e., not a drop, where wanted is
censored), remove ourselves from the delay queue.

16 years agomds: drop 'careful' caps concept
Sage Weil [Thu, 9 Apr 2009 21:43:04 +0000 (14:43 -0700)]
mds: drop 'careful' caps concept

This was originally needed before we were smart about projected
vs non-projected values, and making them visible to only the
xlocking or excl client.  No more.

16 years agomds: choose reasonable state after xlock finishes
Sage Weil [Thu, 9 Apr 2009 21:42:15 +0000 (14:42 -0700)]
mds: choose reasonable state after xlock finishes

16 years agomds: better max_size lock checks when EXCL
Sage Weil [Thu, 9 Apr 2009 21:42:01 +0000 (14:42 -0700)]
mds: better max_size lock checks when EXCL

Choose an appropriate lock state to change to when we need to
journal a max_size update (-> 0, usually).

16 years agomds: stay in EXCL and keep loner until wrlocks drain
Sage Weil [Thu, 9 Apr 2009 21:40:45 +0000 (14:40 -0700)]
mds: stay in EXCL and keep loner until wrlocks drain

Otherwise we go to MIX and revoke caps from the loner, which is
lame.

16 years agomds: clean up can_wrlock() so that it checks of loner
Sage Weil [Thu, 9 Apr 2009 21:39:47 +0000 (14:39 -0700)]
mds: clean up can_wrlock() so that it checks of loner

Previously the EXCL state/cap check was outside of can_wrlock,
which is yucky.