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>
object-storage: Refactor code to reduce Swift diffs carried

The upstream Swift code base contains the following commit which adds the
ability to modify constraint values using the swift.conf file:

 https://github.com/openstack/swift/commit/a2ac5efaa64f57fbbe059066c6c4636dfd0715c2

These changes rely on the above commit being back-ported to Swift 1.4.8 (see
https://github.com/portante/swift/commit/fc2421b04022ac6bbe9d5014362ec5f99f94c5e0).

As a result, a good number of differences we carry can be removed, since the
provided swift.conf file now contains the values we need.

Along with these changes, we add middleware to get constraints loaded properly
(via monkey patching) until subclassing is implemented in a future commit. We
further simplify the diffs to a minimal set by storing the timestamp in file
system metadata and moving new files to the plugins/middleware directory.

Note that the original "gluster" middleware was in the swift.diff file, and
has been renamed to "glusterfs" and moved to the new plugins/middleware
directory. The "gluster" middleware is now a temporary way to get the
constraints properly loaded (both of these middleware pieces should disappear
in future commits when we refactor further to subclass the Swift objects
instead of patching them).

Change-Id: I9dc00d6b6cdd64e277896d75c2fb06431c3e69cb
BUG: 862052
Signed-off-by: Peter Portante <peter.portante@redhat.com>
Reviewed-on: http://review.gluster.org/4093
Tested-by: Peter Portante <pportant@redhat.com>
Reviewed-by: Anand Avati <avati@redhat.com>
object-storage: Don't catch generic exceptions around xattr calls

We should really avoid catching generic Exception objects around any of our
system calls. This simple fix brings this code in line with the other code
wrapping xattr calls.

Change-Id: I75492a61081fbfbec34c8d91a47214858c67e405
Signed-off-by: Peter Portante <peter.portante@redhat.com>
Reviewed-on: http://review.gluster.org/4099
Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-by: Anand Avati <avati@redhat.com>
Tested-by: Anand Avati <avati@redhat.com>
glusterfs: add gf_mkostemp api and use it instead of mkostemp of libc

Change-Id: Icc12b99e2233d22037e2c4bb2b6966e45668b7dd
BUG: 764890
Signed-off-by: Raghavendra Bhat <raghavendra@redhat.com>
Reviewed-on: http://review.gluster.org/4091
Reviewed-by: Anand Avati <avati@redhat.com>
Tested-by: Anand Avati <avati@redhat.com>
tests: pre-commit regression tests

Framework for writing test cases to be submitted with patches.

This framework and the test cases get exercised by Jenkins in
the pre-commit regression test. Jenkins is configured to give
a +1 verified vote only if the regression test passes without
failures (which includes test cases added/changed by the patch
being tested)

Every patch should include a test case (either extensions/changes
to existing test cases or add new ones, as appropriate). The test
case should be part of the same commit so that both code and
test case get reviewed together.

Test cases added are cumulative. Every new patch gets
tested against its own test case and every test case previously
added.

A lot of new commits in the near future will be pure test cases
(with no code change) which will get added in "catch up" mode.

The tool used for implementing test cases is 'prove', and the
framework itself is modeled similar to the POSIX compliance
filesystem test suite.

Under the top level directory, a new directory named 'tests/'
is added. This contains top level classifier directories and
framework files/scripts.

Functionality tests should be created under a classifier directory
below 'tests/'. For e.g:

  tests/basic/mount.t
  tests/performance/write-behind.t

Bugs which get fixed should include a test case script named
by the bug id, so that we are guaranteed any new change will
not bring the issue back. For e.g:

  tests/bugs/bug-123456.t

Triggering of regression tests in Jenkins is manual at this point
as we do not want the entire test suite to run against every
revision of a patch while it is still in the review/resubmit cycle.

Signed-off-by: Anand Avati <avati@redhat.com>

Change-Id: I8078244619135ccaba38e068925f8ca85141055a
BUG: 764966
Signed-off-by: Anand Avati <avati@redhat.com>
Reviewed-on: http://review.gluster.org/4101
Tested-by: Gluster Build System <jenkins@build.gluster.com>
nfs: do lookup on getattr after brick-status change

By doing a lookup, we get a chance to do all of the self-heal checks that
would occur if we were using native protocol, and return proper status if
the self-heal fails.  Best of all, we don't need to misrepresent times.

Change-Id: I76477d1e5fce4d83e4029e02fcdd71e81e23110d
BUG: 830134
Signed-off-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-on: http://review.gluster.org/4058
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
In some cases AI_ADDRCONFIG confuses NetBSD 6.0

BUG: 764655
Change-Id: I29198c94c6788f9e01f57e11798f3d3d7cd9c8de
Signed-off-by: Emmanuel Dreyfus <manu@netbsd.org>
Reviewed-on: http://review.gluster.org/4105
Reviewed-by: Anand Avati <avati@redhat.com>
Tested-by: Anand Avati <avati@redhat.com>
NetBSD negative timeout missing support workaround

Newer and simplier version: since the default of negative_timeout is 0,
we can just avoid sending a fuse_entry in that case, and this is enough
to work around the problem.

BUG: 764655
Change-Id: Ibfc6230e3cb9871ccade7fb756e61ebc47cb6487
Signed-off-by: Emmanuel Dreyfus <manu@netbsd.org>
Reviewed-on: http://review.gluster.org/4115
Reviewed-by: Anand Avati <avati@redhat.com>
Tested-by: Anand Avati <avati@redhat.com>
glusterd: do not log rdma not found messages in error mode

Change-Id: Ie35b05ed2ee004bd6479ccdd3459cbcd9cf8c208
BUG: 867313
Signed-off-by: Raghavendra Bhat <raghavendra@redhat.com>
Reviewed-on: http://review.gluster.org/4094
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Merge pull request #4 from gluster/master

Pulling the latest patches