]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
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.

16 years agomds: replace WANT cap op with DROP
Sage Weil [Thu, 9 Apr 2009 21:09:45 +0000 (14:09 -0700)]
mds: replace WANT cap op with DROP

While it's not always clear when we are expanding wanted (bc the
client may have skewed perception of mds_wanted), it IS always
clear when we are explicitly _dropping_ caps and don't want them
reissued to us.  And that's the behavior we're trying to avoid
anyway.

16 years agomds: use EXCL instead of LOCK to adjust max_size if loner
Sage Weil [Thu, 9 Apr 2009 20:30:11 +0000 (13:30 -0700)]
mds: use EXCL instead of LOCK to adjust max_size if loner

16 years agomds: don't rdlock_try authlock for path_traverse permission check
Sage Weil [Thu, 9 Apr 2009 20:26:17 +0000 (13:26 -0700)]
mds: don't rdlock_try authlock for path_traverse permission check

We don't actually check anything anyway, just ping the lock.

If the client is trusted with AUTH_EXCL, this is pointless anyway.
It is only really useful with untrusted (e.g., fuse) clients, but
they'll need some sort of special support for that later.

16 years agomds: issue caps in file_eval only if needed, indicated by WANTED cap op
Sage Weil [Thu, 9 Apr 2009 20:21:34 +0000 (13:21 -0700)]
mds: issue caps in file_eval only if needed, indicated by WANTED cap op

We can't always issue_caps in file_eval or cap releases won't work.

Sometimes the client wanted shrink is missed, though, and a wanted
expansion is sent that doesn't actually change wanted.  In those
cases, we DO need to issue caps.  Use a separate cap op WANTED so
the mds knows when the client is asking for caps.

16 years agomds: fix file_eval to issue caps from EXCL state
Sage Weil [Thu, 9 Apr 2009 19:34:24 +0000 (12:34 -0700)]
mds: fix file_eval to issue caps from EXCL state

Before it wasn't getting called in some cases.

16 years agotodo
Sage Weil [Wed, 8 Apr 2009 23:29:19 +0000 (16:29 -0700)]
todo

16 years agokclient: only flush caps in write_inode if wait=1
Sage Weil [Wed, 8 Apr 2009 23:26:22 +0000 (16:26 -0700)]
kclient: only flush caps in write_inode if wait=1

The problem is that on delayed writeback, vm calls write_inode and
THEN writepages.  Which means we still have WRBUFFER caps used,
so sending a cap release then is somewhat counter productive.  If
we don't release wanted, we'll have to again later.  And if we do,
the mds will explicitly revoke our WRBUFFER caps so that it can
journal the max_size to 0.  Yuck.

So.  If wait, then do the cap flush immediately, as before.  If
!wait, queue up the caps at the front of the delay queue so that
it goes the next time we check_delayed_caps.  This catches the
sync() and umount cases (basically the same, really).

On fsync, queue the caps for write, but don't wait, since the mds
can recover the size/mtime anyway.

16 years agokclient: maintain min and max cap hold delays
Sage Weil [Wed, 8 Apr 2009 22:17:04 +0000 (15:17 -0700)]
kclient: maintain min and max cap hold delays

Set a minimum amount of time we keep caps wanted bits even after
the file is closed.  Before that time, even if we are sending a
cap message, we tell the mds we still want the caps.  After the min
but before the max, we will tell the mds we no longer need them
IF we are sending a cap message for some other reason.

The caps_delay queue works as before based on the max timeout. When
that timer goes off, send a new message to release the wanted bits.

In most cases, this now releases wanted bits when we write back the
file size to the mds after writepages, which means only a single
message after we write and close a file.  Yay!

16 years agokclient: drop FILE_RD if !wanted and max_size non-zero
Sage Weil [Wed, 8 Apr 2009 21:41:24 +0000 (14:41 -0700)]
kclient: drop FILE_RD if !wanted and max_size non-zero

If we are dropping wanted and max_size is non-zero, the mds will
want to journal the update, which will mean syncing the lock and
recalling FILE_RD anyway.

16 years agomds: adjust mds client request format to include optional releases
Sage Weil [Wed, 8 Apr 2009 21:40:46 +0000 (14:40 -0700)]
mds: adjust mds client request format to include optional releases

The goal is to release caps and/or dentry leases in the same
message as the request we are dropping them for.  We will already
get caps/leases reissued with the response, in most cases.

Kill the mds replication hack while we're at it.  That should be
cleaned up if/when it is reincarnated.

16 years agomds: separate CREATE vs OPEN handling
Sage Weil [Wed, 8 Apr 2009 20:53:45 +0000 (13:53 -0700)]
mds: separate CREATE vs OPEN handling

These are now distinct ops.

16 years agomds: allow full dir lease (FILE_RDCACHE) on root ino
Sage Weil [Wed, 8 Apr 2009 18:28:40 +0000 (11:28 -0700)]
mds: allow full dir lease (FILE_RDCACHE) on root ino

Now that root changes are persistent, and client looks at
rdcache_gen and not i_version anyway, this will work.

16 years agokclient: drop root ino special cases
Sage Weil [Wed, 8 Apr 2009 18:27:43 +0000 (11:27 -0700)]
kclient: drop root ino special cases

Now that root ino changes are persistent on the mds, we can remove
various special cases that disallow I_CONTENT checks.

16 years agokclient: mark dentries with dir rdcache_gen, not i_version
Sage Weil [Wed, 8 Apr 2009 18:14:54 +0000 (11:14 -0700)]
kclient: mark dentries with dir rdcache_gen, not i_version

The i_version may change if we are doing dir updates with an excl
lock on the dir, but our dcache should remain consistent over those
operations (unless we lack a trace, and fill_trace clears
I_COMPLETE in that case).  Instead, we want to effectively
invalidate prior dentries when we are _newly_ issued RDCACHE and
don't know what has changed... which is exactly what rdcache_gen is
for.

16 years agokclient: don't clear I_COMPLETE on dentry revalidate failure
Sage Weil [Wed, 8 Apr 2009 18:05:31 +0000 (11:05 -0700)]
kclient: don't clear I_COMPLETE on dentry revalidate failure

I_COMPLETE + FILE_RDCACHE means we have the full set of dentries.
If a revalidating dentry is part of the current set, then it will
successfully revalidate.  The only reason revalidate would fail is
if the dentry is not part of the current set, or we don't hold
FILE_RDCACHE.. and in those cases clearing I_COMPLETE is either
wrong or unnecessary.  Revalidate will already fail when we lose
FILE_RDCACHE, or when a dentry is released, or when a new RDCACHE
is issued and our rdcache_gen changes.

16 years agokclient: reverse logic of O_CREAT create vs open check
Sage Weil [Wed, 8 Apr 2009 18:03:15 +0000 (11:03 -0700)]
kclient: reverse logic of O_CREAT create vs open check

16 years agotodo
Sage Weil [Tue, 7 Apr 2009 23:58:34 +0000 (16:58 -0700)]
todo

16 years agoconfig: remove INSTALL_PREFIX
Sage Weil [Tue, 7 Apr 2009 23:58:08 +0000 (16:58 -0700)]
config: remove INSTALL_PREFIX

On a 'norma' install, it's /usr, which isn't helpful.  If anything, we
need sysconfdir, etc. individually.  Blech.

16 years agouclient: fix up caps some. make dentry leases work
Sage Weil [Tue, 7 Apr 2009 23:34:22 +0000 (16:34 -0700)]
uclient: fix up caps some.  make dentry leases work

16 years agouclient: set fsid in statfs request
Sage Weil [Tue, 7 Apr 2009 22:36:07 +0000 (15:36 -0700)]
uclient: set fsid in statfs request

16 years agokclient: fix ino returned in fstat for 32 bit arch
Yehuda Sadeh [Tue, 7 Apr 2009 23:31:59 +0000 (16:31 -0700)]
kclient: fix ino returned in fstat for 32 bit arch

16 years agokclient: don't alter mds_wanted caps if dropping caps
Yehuda Sadeh [Tue, 7 Apr 2009 22:45:07 +0000 (15:45 -0700)]
kclient: don't alter mds_wanted caps if dropping caps

16 years agovstart: kill bashisms
Sage Weil [Tue, 7 Apr 2009 21:51:35 +0000 (14:51 -0700)]
vstart: kill bashisms

16 years agokclient: remove alignment restrictions on O_DIRECT reads and writes
Sage Weil [Tue, 7 Apr 2009 16:29:39 +0000 (09:29 -0700)]
kclient: remove alignment restrictions on O_DIRECT reads and writes

These aren't needed, since we aren't restricted by DMA to a hardware disk
device or any such thing.  (And even if they were, it'd probably be
sector alignment, not page alignment.)

16 years agomds: fix compilation error
Yehuda Sadeh [Tue, 7 Apr 2009 21:29:55 +0000 (14:29 -0700)]
mds: fix compilation error

16 years agomds: bump mds protocol
Yehuda Sadeh [Tue, 7 Apr 2009 21:24:24 +0000 (14:24 -0700)]
mds: bump mds protocol

16 years agomds: add CEPH_CAP_OP_REVOKE
Yehuda Sadeh [Tue, 7 Apr 2009 21:19:03 +0000 (14:19 -0700)]
mds: add CEPH_CAP_OP_REVOKE

16 years agokclient: clear di->lease_session when dropping session
Yehuda Sadeh [Tue, 7 Apr 2009 19:35:37 +0000 (12:35 -0700)]
kclient: clear di->lease_session when dropping session

16 years agomds: flush log when expanding caps and filelock is unstable
Yehuda Sadeh [Mon, 6 Apr 2009 22:53:10 +0000 (15:53 -0700)]
mds: flush log when expanding caps and filelock is unstable

16 years agomds, kclient: add CEPH_MDS_OP_CREATE operation
Yehuda Sadeh [Mon, 6 Apr 2009 19:29:29 +0000 (12:29 -0700)]
mds, kclient: add CEPH_MDS_OP_CREATE operation

16 years agokclient: implement permission iop
Sage Weil [Mon, 6 Apr 2009 03:30:21 +0000 (20:30 -0700)]
kclient: implement permission iop

The permission iop verfies we have a valid uid/gid/mode by checking for
the AUTH cap.  Then calls the generic helper.

This is 100% consistent because we don't carry a cap ref over the
permission checkout.  OTOH, if we don't hold the cap and the mds doesn't
actually issue it, we never will anyway.  Maybe fix this eventually.

16 years agokclient: make do_getattr take inode, not dentry
Sage Weil [Mon, 6 Apr 2009 03:22:05 +0000 (20:22 -0700)]
kclient: make do_getattr take inode, not dentry

16 years agokclient: d_alloc_anon on older kernels
Sage Weil [Mon, 6 Apr 2009 03:18:58 +0000 (20:18 -0700)]
kclient: d_alloc_anon on older kernels

16 years agomds: make sure kick wasn't immediatley fruitful in rdlock_try
Sage Weil [Sun, 5 Apr 2009 04:12:18 +0000 (21:12 -0700)]
mds: make sure kick wasn't immediatley fruitful in rdlock_try

16 years agomds: simplify EMetaBlob interface - don't pass explicit inode_t pointer
Sage Weil [Sun, 5 Apr 2009 03:51:21 +0000 (20:51 -0700)]
mds: simplify EMetaBlob interface - don't pass explicit inode_t pointer

It is always in->get_projected_inode().

16 years agomds: fix journal replay
Sage Weil [Sat, 4 Apr 2009 22:33:43 +0000 (15:33 -0700)]
mds: fix journal replay

Load root inode before replaying journal.  Kill root special case in
journal replay.  Replay root inode if it is journaled.

16 years agomds: journal projected inode values by default
Sage Weil [Sat, 4 Apr 2009 22:32:43 +0000 (15:32 -0700)]
mds: journal projected inode values by default

There was a bug in here that was journaling _old_ inode values.  Doh!

16 years agovstart: run valgrind properly
Sage Weil [Sat, 4 Apr 2009 22:01:49 +0000 (15:01 -0700)]
vstart: run valgrind properly

16 years agotodo
Sage Weil [Sat, 4 Apr 2009 21:33:32 +0000 (14:33 -0700)]
todo

16 years agomds: make mds restart work
Sage Weil [Sat, 4 Apr 2009 21:28:16 +0000 (14:28 -0700)]
mds: make mds restart work

Root mds needs to load root inode, .ceph directories.

16 years agomon: fix mds stopping and restart
Sage Weil [Sat, 4 Apr 2009 21:18:47 +0000 (14:18 -0700)]
mon: fix mds stopping and restart

Remove stopped mds from last_beacon (monitoring) set.  Fix mdsmap dump
output to include stopping set.  Remove mds from stopped set on start.

16 years agomds: fix permissions checks on root, system inodes
Sage Weil [Thu, 2 Apr 2009 15:12:53 +0000 (08:12 -0700)]
mds: fix permissions checks on root, system inodes

16 years agomds: journal root inode changes
Sage Weil [Thu, 2 Apr 2009 15:11:32 +0000 (08:11 -0700)]
mds: journal root inode changes

Journal root inode changes, and flush them when trimming the log segment.

16 years agomds: inode fetch/store
Sage Weil [Fri, 3 Apr 2009 15:49:30 +0000 (08:49 -0700)]
mds: inode fetch/store

16 years agoobjecter: only send one ping per laggy osd
Sage Weil [Sat, 4 Apr 2009 13:49:54 +0000 (06:49 -0700)]
objecter: only send one ping per laggy osd

16 years agoobjecter: add support for compound read ops (ObjectRead)
Sage Weil [Fri, 3 Apr 2009 15:48:54 +0000 (08:48 -0700)]
objecter: add support for compound read ops (ObjectRead)

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.