client: Fix state of symlink with absolute path

Symlinks that have an absolute path are not getting
properly dereferenced in path_walk() due to a bug
with the cur and next inode pointers, and because
the path position wasn't getting reset on the symlink
dereference.

Signed-off-by: Sam Lang <sam.lang@inktank.com>
test: Add symlink test for absolute paths

Signed-off-by: Sam Lang <sam.lang@inktank.com>
client: simplify path_walk() loop

Most paths were kludging around the for loop's i++.  Switch to a while
loop to avoid such tomfoolery.

Signed-off-by: Sage Weil <sage@inktank.com>
client: always follow non-trailing symlinks

If we are walking /a/b/c and a or b is a symlink, follow it.  It's only
c that we don't follow when !followsym.

Signed-off-by: Sage Weil <sage@inktank.com>
test script for s3 tests
Signed-off-by: tamil <tamil.muthamizhan@inktank.com>
test: Add tests for symlink pathological cases

The DirSyms test checks verifies that the new path_walk()
handling code properly walks through symlinked directories
even if the followsym flag is false.

The LoopSyms test checks that we correctly handle symlink
loops, where /a/b/c points back to /a.

Signed-off-by: Sam Lang <sam.lang@inktank.com>
client:  Fix path_walk() to support dir symlinks

Additions to Sage's commits that replace the path walked so
far with the symlinked directory path, rather than the remainder
of the path to walk.  This allows the dir symlink tests to
succeed.

Signed-off-by: Sam Lang <sam.lang@inktank.com>
client: Add symlink loop checking in path_walk()

If a loop exists in directories due to a symlink: /a/b/c -> /a
We now return -ELOOP from path_walk() instead of looping forever.

Signed-off-by: Sam Lang <sam.lang@inktank.com>
mds: base loner decision on wanted RD|WR|EXCL, not CACHE|BUFFER

Observed instance where one client wanted the Fc cap and prevented the
loner from getting RD|WR caps.

Signed-off-by: Sage Weil <sage@inktank.com>
mds: move to from loner -> mix if *anyone* wants rd|wr

We were either going to MIX or SYNC depending on whether non-loners wanted
to read/write, but it may be that the loner wants to if our logic for
choosing loner vs not longer is based on anything other that just rd|wr
wanted.

Signed-off-by: Sage Weil <sage@inktank.com>
qa: disable xfstest 45 until mount issue is resolved on precise

Meh

Signed-off-by: Sage Weil <sage@inktank.com>
client: kick waiters for an mds session to open on mds recovery

We already kicked waiters for request, but we need to kick waiters on open
too (e.g., a client trying to mount).

Signed-off-by: Sage Weil <sage@inktank.com>
qa: Script to run fio and template file

Signed-off-by: Sam Lang <sam.lang@inktank.com>
rgw_admin: do not throw error when start-date and end-date are not
passed to usage::trim()

Signed-off-by: caleb miles <caleb.miles@inktank.com>
ceph.spec.in:  Remove ceph version requirement from ceph-fuse package.

The ceph-fuse rpm package now only requires ceph as a pre-req, not a specific
version.
Merge remote-tracking branch 'gh/wip-mds'
Merge remote-tracking branch 'gh/wip-fix-symlinks'

Conflicts:
	qa/qa_scripts/load-bucket-1000-obj.pl
	src/test/libcephfs/test.cc
doc: Clarified text to reflect requirement for majority, not odd number of monitors.

fixes: 3464

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
Merge branch 'master' of https://github.com/ceph/ceph
build:  Add RPM release string generated from git describe.

Fix for bug 3451.  Use the commit count and sha1 from git describe to
construct a release string for rpm packages.