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

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