build: remove useless explicit -fPIC -shared from
 CFLAGS

libtool will automatically add "-fPIC" to the compiler command line as
needed, so there is no need to specify it separately.

"-shared" is normally a linker flag and has an odd effect when used with
libtool --mode=compile, namely that it inhibits production of static
objects. For that however, using AC_DISABLE_STATIC is a lot simpler.

Change-Id: Ic4cba0fad18ffd985cf07f8d6951a976ae59a48f
BUG: 862082
Original-author: Jan Engelhardt <jengelh@inai.de>
Signed-off-by: Jan Engelhardt <jengelh@inai.de>
Signed-off-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-on: http://review.gluster.org/4027
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
build: move -L arguments out of CFLAGS

"-L" is a linker flag, and as such should be in LDFLAGS, not CFLAGS, to
have guaranteed effect.

Change-Id: I014db3f48823d4923b45e0695b62b124eb1a1506
BUG: 862082
Original-author: Jan Engelhardt <jengelh@inai.de>
Signed-off-by: Jan Engelhardt <jengelh@inai.de>
Signed-off-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-on: http://review.gluster.org/4028
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
build: split CPPFLAGS from CFLAGS

Automake provides a separate variable for preprocessor flags
(*_CPPFLAGS). They are already uses in a few places, so make it
consistent and use it everywhere. Note that cflags obtained from
pkg-config often are cppflags, which is why LIBXML2_CFLAGS moves with
into AM_CPPFLAGS, for example.

Change-Id: I15feed1d18b2ca497371271c4b5876d5ec6289dd
BUG: 862082
Original-author: Jan Engelhardt <jengelh@inai.de>
Signed-off-by: Jan Engelhardt <jengelh@inai.de>
Signed-off-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-on: http://review.gluster.org/4029
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
build: libraries must be in LDADD/LIBADD

Libraries must not be listed in LDFLAGS, because _order is important_.
Details see
http://stackoverflow.com/questions/4241683/linker-flags-in-wrong-place
http://www.gentoo.org/proj/en/qa/asneeded.xml#doc_chap2_sect3

Change-Id: I0479456d6702748c555031bb20641ce430732ec7
BUG: 862082
Original-author: Jan Engelhardt <jengelh@inai.de>
Signed-off-by: Jan Engelhardt <jengelh@inai.de>
Signed-off-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-on: http://review.gluster.org/4030
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
glusterd: rebalance should use runner_run_nowait to free up glusterd's epoll thread

Change-Id: Ia32b8c426643e1affcb02dbfb8f32b1844f34303
BUG: 861342
Signed-off-by: Krishnan Parthasarathi <kparthas@redhat.com>
Reviewed-on: http://review.gluster.org/4024
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
core: make sure there are processors for just-queued tasks

Change-Id: I6196ad02fab6c24ac473cda0f78f9e946f0329ce
BUG: 862838
Signed-off-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-on: http://review.gluster.org/4031
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
cli: fixed cli crash during volume set operation

PROBLEM:

The cli crashes in the following case:
gluster> volume set v3 auth.allow "write-behind"

CAUSE:

The second strncat operation in the last iteration of the for loop,
in cli_to_glusterd writes off the end of the space malloc'd for "cmd",
leading to memory corruption.

FIX:

Made the last strncat operation conditional so that in the last
iteration, strncat is avoided.

Change-Id: I8f836c684f33a6328e384ab8e677b8e32bcb4e55
BUG: 862526
Signed-off-by: Krutika Dhananjay <kdhananj@redhat.com>
Reviewed-on: http://review.gluster.org/4025
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Pranith Kumar Karampuri <pranithk@gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
syncop: Implement some missing operations

- syncop_mkdir()
- syncop_rmdir()
- syncop_rename()

Change-Id: I177db0f9af7c99fc6645d59521c8fb82f73812ca
BUG: 839950
Signed-off-by: Anand Avati <avati@redhat.com>
Reviewed-on: http://review.gluster.org/4019
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
syncop: fix symlink param

make syncop_symlink() accept 'const char *linkname' instead of
'char *linkname'

Change-Id: I7751d552e4a4cc6e8b8e587b9e520213f4e11b45
BUG: 839950
Signed-off-by: Anand Avati <avati@redhat.com>
Reviewed-on: http://review.gluster.org/4020
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
glfs-resolve: fix resolution of "/"

Change-Id: I78d63b39dde14a9a32ea197cf0dedeb5695b35c9
BUG: 839950
Signed-off-by: Anand Avati <avati@redhat.com>
Reviewed-on: http://review.gluster.org/4021
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
glusterd: bring an option to change the transport-type of the volume.

'gluster volume set <VOL> transport [<tcp>|<rdma>|<tcp,rdma>]'

is the command to change the transport type

* also moved 'memory-accounting' volume set key into VME table

* fixed a crash in 'volume set help' if the vme->type was wrong

Change-Id: Ic4f7ef62277a22b561b05e94c1b1bf19a51d2095
Signed-off-by: Amar Tumballi <amarts@redhat.com>
BUG: 797001
Reviewed-on: http://review.gluster.org/4008
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
Fix docs to reflect change in GLUSTERD_DEFAULT_WORKDIR

Change-Id: I8ee98cece7a3c4ccdc4c444ff755fba37c75f169
BUG: 859849
Signed-off-by: Kacper Kowalik (Xarthisius) <xarthisius.kk@gmail.com>
Reviewed-on: http://review.gluster.org/3970
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
gfapi: added more API calls

- stat
- lstat
- access
- readlink
- mknod
- mkdir
- rmdir
- symlink
- rename
- link
- opendir
- closedir
- seekdir
- telldir
- readdir_r
- statvfs
- chmod
- fchmod
- chown
- lchown
- fchown
- utimens
- lutimens
- futimens
- getxattr
- lgetxattr
- fgetxattr
- setxattr
- lsetxattr
- fsetxattr
- listxattr
- llistxattr
- flistxattr
- removexattr
- lremovexattr
- fremovexattr

Change-Id: Ic2467293ddfbcefaa9b41c82cec61a5602636833
BUG: 839950
Signed-off-by: Anand Avati <avati@redhat.com>
Reviewed-on: http://review.gluster.org/4022
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
glusterd: glusterd_brick_stop should be race free wrt pmap

This is important for the effort to make glusterd use synctask
framework.

Change-Id: I0affb10a342df99df8daccfd6eef8fa6dd63928c
BUG: 862834
Signed-off-by: Krishnan Parthasarathi <kparthas@redhat.com>
Reviewed-on: http://review.gluster.org/4057
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
cluster/afr: check transaction type for eager-lock after it is set

Problem:
Eager locking lk-owner decision is taken before transaction
type is set. Default transaction type is DATA so all transactions
are treated as DATA transactions at the time of eager-locking
decision.

Fix:
Move the code that takes lk-owner decision after the transaction
type is set.

Test:
Checked that the transaction type is set properly in gdb at
the time of the lk-owner decision.

Change-Id: Ib1c886866f28788aed67622982e86d667b2cdb80
BUG: 864786
Signed-off-by: Pranith Kumar K <pranithk@gluster.com>
Reviewed-on: http://review.gluster.org/4053
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
storage/posix: return -1 if lstat call returns non zero value apart from -1

* If lstat() call in posix_{pstat, istat} returns non zero return value
  other than -1, then treat lstat() call to have been failed and return -1
  itself. This might happen if there is some bug in the backend filesystem.

Change-Id: Ie23787f6c838f14f92edadad71b83471e3d22289
BUG: 864401
Signed-off-by: Raghavendra Bhat <raghavendra@redhat.com>
Reviewed-on: http://review.gluster.org/4056
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
cluster/afr Changed the message's log level from Error to Debug

Change-Id: Ic2506561367bfec9022dc53e9b17b03dc343df95
BUG: 859411
Signed-off-by: Venkatesh Somyajulu <vsomyaju@redhat.com>
Reviewed-on: http://review.gluster.org/4055
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
glusterd: add-brick failed to start bricks when more than one were given

Change-Id: I1487487a656e15e1a9a8685524ea40f0636e0e50
BUG: 864772
Signed-off-by: Krishnan Parthasarathi <kparthas@redhat.com>
Reviewed-on: http://review.gluster.org/4051
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Kaushal M <kaushal@redhat.com>
Reviewed-by: Anand Avati <avati@redhat.com>
glusterd: Moved peer rsp handling functions to glusterd-utils

- Moved inner functions used in conjunction with synctask, 'out'.

Change-Id: I7fbfd9881ea58645c4295a9fa7163ddd15a45d2f
BUG: 862834
Signed-off-by: Krishnan Parthasarathi <kparthas@redhat.com>
Reviewed-on: http://review.gluster.org/4066
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
glusterd: volume-start, add-brick and remove-brick to use synctask framework

- Added volume-id validation to glusterd-syncop code.
- All daemons are restarted using synctasks in init().
- glusterd_brick_start has wait/nowait variants to support
  volume commands using synctask framework and those that aren't.

Change-Id: Ieec26fe1ea7e5faac88cc7798d93e4cc2b399d34
BUG: 862834
Signed-off-by: Krishnan Parthasarathi <kparthas@redhat.com>
Reviewed-on: http://review.gluster.org/3969
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>