core: Add support for systemtap

- First cut (configure plumbing only)
- Intended to allow people who want to test userspace
  probes for their favourite xlator(s).

Change-Id: I5bf202073a2f1cc29dc4a55714167b7f48b463a1
BUG: 865734
Signed-off-by: Krishnan Parthasarathi <kparthas@redhat.com>
Reviewed-on: http://review.gluster.org/3638
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
cluster/afr : Edited log message in afr_sh_entry_expunge_entry_cbk

Change-Id: I9f7562d28c8bc798552c403164397f929a7bd1e7
BUG: 860246
Signed-off-by: Venkatesh Somyajulu <vsomyaju@redhat.com>
Reviewed-on: http://review.gluster.org/4052
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
protocol/client: Conditional logging in client3_3_unlink_cbk

Change-Id: I4af398362cdb3f99782dcd3728988e4cf1fbb479
BUG: 861925
Signed-off-by: Venkatesh Somyajulu <vsomyaju@redhat.com>
Reviewed-on: http://review.gluster.org/4069
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
Fix a small typ-o in the Swift README

Change-Id: I6c737bcc0d60d656df63ffe1c03ad336606ec090
BUG: 862052
Signed-off-by: Peter Portante <peter.portante@redhat.com>
Reviewed-on: http://review.gluster.org/4080
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
Refactor to use pyxattr's get/set/remove methods

These methods are not deprecated, the old ones with the xattr suffix are
considered deprecated starting with 0.4 of pyxattr.

Change-Id: I86ba7a44cec81a273931bf7e470de5eb04e82663
BUG: 865858
Signed-off-by: Peter Portante <peter.portante@redhat.com>
Reviewed-on: http://review.gluster.org/4077
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-by: Anand Avati <avati@redhat.com>
write-behind: use uint64_t for overlap comparison

off_t is 'long int' (signed word) and therefore ULLONG_MAX - 1

Change-Id: I027de7a1b2ca24865d5d787f9986930e97911ca4
BUG: 857673
Signed-off-by: Anand Avati <avati@redhat.com>
Reviewed-on: http://review.gluster.org/4079
Fix BZ 865858: remove unnecessary system calls around xattr ops

The following is a simple refactoring of the read and write metadata methods
to just make calls to get/set/remove xattr operations instead of trying to
stat/open/close the file. For a single GET operation, this brings down the
number of system calls made from 13 to 3 for a file object with no
significantly sized metadata (meaning, only 1 xattr key/value pair is needed
to store the metadata).

Change-Id: I698f5886d63d5203f130c8eac1536a3ee4b0dbfb
BUG: 865858
Signed-off-by: Peter Portante <peter.portante@redhat.com>
Reviewed-on: http://review.gluster.org/4078
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-by: Anand Avati <avati@redhat.com>
glusterfs: code cleanup

Change-Id: I99bbb720d8b42c8b3899bb1353c6b73f7fcd50f1
BUG: 764890
Signed-off-by: Raghavendra Bhat <raghavendra@redhat.com>
Reviewed-on: http://review.gluster.org/4042
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
Reduce the number of gratuitous differences in constraints.

Ahead of further refactoring to make things a bit easier to review, we have
restored some of the code formatting as it was in the original constraints.py
file from which this file as copied.

Change-Id: Icd0b42b4790bc076c54dcbf08a9745648769acfd
BUG: 862052
Signed-off-by: Peter Portante <peter.portante@redhat.com>
Reviewed-on: http://review.gluster.org/4081
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
Reviewed-by: Anand Avati <avati@redhat.com>
Remove the test subdirectory diffs ahead of initial refactoring.

A subsequent commit will refactor the changes required of Swift to be much
more minimal in nature, but does so by relying on an upstream Swift change to
allow constraint values specified in the swift.conf file (see
https://github.com/openstack/swift/commit/a2ac5efaa64f57fbbe059066c6c4636dfd0715c2).

As a result, we can remove the test subdirectory diffs and assume that they
will be present as a result of the upstream patch above.

Change-Id: Ic450aca235d4c9f345e480f9b761bcb2857bd689
BUG: 862052
Signed-off-by: Peter Portante <peter.portante@redhat.com>
Reviewed-on: http://review.gluster.org/4082
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
Reviewed-by: Anand Avati <avati@redhat.com>
object-storage: change logging of some errors to warnings

There are a number of errors logged which should probably be warnings, given
that the code recovers on those paths.

Change-Id: Ie643bbccb71e7b84ba76d68bac473d1dde663c44
BUG: 866557
Signed-off-by: Peter Portante <peter.portante@redhat.com>
Reviewed-on: http://review.gluster.org/4089
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
Reviewed-by: Anand Avati <avati@redhat.com>
mgmt/glusterd: avoid directly using conf->uuid

Change-Id: I398c8741b02aa2f34d428c948e93f422e520a9ab
BUG: 862834
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
Reviewed-on: http://review.gluster.org/4084
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Krishnan Parthasarathi <kparthas@redhat.com>
syncop: save and restore THIS from the time of context switch

The current yield() code assumes that the point of yielding
is always in the translator where the synctask was created. This
can be a problem for nested syncops and/or where syncop is issued
by a different translator.

So, save the THIS pointer just before swapcontext() and restore
it right after resuming.

Change-Id: I86aad2329ccbc3ac1f04fbec3835136ff3fa79fb
BUG: 862838
Signed-off-by: Anand Avati <avati@redhat.com>
Reviewed-on: http://review.gluster.org/4085
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
Tested-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
cluster/distribute: Always return the latest time in struct iatt.

save the a/c/mtime in inode_ctx, and dht_inode_ctx_update
checks the passed iatte, and updates the stat's time,
and inode_ctx's time accordingly. For preparent times, only
the iatt stat to be returned is updated, not the ctx.

With this, update, WIPE is removed, as we would always be passing
back the latest mtime, and hence cache times will be relevant.

TODO-handle rename WIPE calls

Change-Id: I8e4c738cd830f3fafeef789c9181f9c242ac96a2
BUG: 857791
Signed-off-by: shishir gowda <sgowda@redhat.com>
Reviewed-on: http://review.gluster.org/3737
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
cluster/dht: ignore empty ->hashed_subvol during lookup

->hashed_subvol is not valid (== NULL) when the subvolume
the entity hashes to is down. For directories, we need not
rely on ->hashed_subvol as we aggregate information from all
subvolumes. So, during lookup, NULL ->hashed_subvol is ingored
but logged.

Change-Id: I306e4e274fe29d60ff028add4a6c3bcd67b2f314
Signed-off-by: Venky Shankar <vshankar@redhat.com>
BUG: 856459
Reviewed-on: http://review.gluster.org/4046
Reviewed-by: Anand Avati <avati@redhat.com>
Tested-by: Anand Avati <avati@redhat.com>