quota: unmount quota aux mount for volume stop

Previously df -h used to display "Transport end point not connected"
for quota auxiliary mount after volume is stopped. This patch
unmounts the auxiliary mount when the volume is stopped in all peer
nodes for that volume.

Change-Id: I78abb44386cd8242a532f92c13df8bdb57c78e31
BUG: 1049323
Signed-off-by: Susant Palai <spalai@redhat.com>
Reviewed-on: http://review.gluster.org/6656
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
quota: get directory size before enforcing quota on rename

Change-Id: If18cab5992ddc91457782786942971deb1b51ead
BUG: 1023974
Signed-off-by: Krishnan Parthasarathi <kparthas@redhat.com>
Reviewed-on: http://review.gluster.org/6155
Reviewed-by: Raghavendra G <rgowdapp@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
build: Install /var/lib/glusterd/groups/virt by default

/var/lib/glusterd/groups/virt is not installed by default, but that
should be the case. It is provided as extras/groups-virt.example.

"make install" should correctly install this file, and the rpm packages
should include it.

Change-Id: I5284306cfc2882e3147bd72f496ad29db906fcb2
BUG: 1053854
Signed-off-by: Niels de Vos <ndevos@redhat.com>
Reviewed-on: http://review.gluster.org/6717
Reviewed-by: Harshavardhana <harsha@harshavardhana.net>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
glusterd: Fix memory leak of hostname.

The if causes a goto that allows the GF_FREE to be missed.

BUG: 789278
Change-Id: Ic2c20b7623ea880b8ab2d11ebe510a62633a036d
CID: 1124785
Signed-off-by: Ira Cooper <ira@samba.org>
Reviewed-on: http://review.gluster.org/6754
Reviewed-by: Krishnan Parthasarathi <kparthas@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
rpc: use GF_FREE when a string is gf_strdup'd.

Change-Id: I522c30a600e712be9cc09393104e228e4d8e13f5
Signed-off-by: Krishnan Parthasarathi <kparthas@redhat.com>
Reviewed-on: http://review.gluster.org/6752
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
core:Fixing NULL dereference issue.

1.Checking of frame before calling STACK_DESTROY (frame->root)
Signed-off-by: surabhi <sbhaloth@redhat.com>

Change-Id: I21d27a8b4e556c00cd123afe8512e010a1a1f80d
BUG: 789278
Signed-off-by: surabhi <sbhaloth@redhat.com>
Reviewed-on: http://review.gluster.org/6749
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
locks: set @lock->frame = NULL when lock is granted

This way disconnect cleanup code can differentiate which locks
are granted vs blocked.

Change-Id: I2a835c6865b6c804231d852953ea84eeccef35a3
BUG: 849630
Signed-off-by: Anand Avati <avati@redhat.com>
Reviewed-on: http://review.gluster.org/6730
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Raghavendra Bhat <raghavendra@redhat.com>
Reviewed-by: Krishnan Parthasarathi <kparthas@redhat.com>
Fix build with c99 compilers

BUG: 764655
Change-Id: If5dfdc9c7427bd3d39d8da8f79e33ae2da6a3137
Signed-off-by: Emmanuel Dreyfus <manu@netbsd.org>
Reviewed-on: http://review.gluster.org/6034
Reviewed-by: Harshavardhana <harsha@harshavardhana.net>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
quota: filter glusterfs quota xattrs

Change-Id: I86ebe02735ee88598640240aa888e02b48ecc06c
BUG: 1040423
Signed-off-by: Susant Palai <spalai@redhat.com>
Reviewed-on: http://review.gluster.org/6490
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Raghavendra G <rgowdapp@redhat.com>
Create /var/run/gluster at install time

BUG: 764655
Change-Id: I67c33984a797bc92c7035724695c5ef2bbdf5267
Signed-off-by: Emmanuel Dreyfus <manu@netbsd.org>
Reviewed-on: http://review.gluster.org/6750
Reviewed-by: Niels de Vos <ndevos@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
geo-rep: optimizing update stime after directory synchronization

Since xsync crawl generates new changelog when number of entries
reaches 8K or when directory is reached. If a directory has number
of files less than 8K then respective changelog file will have less
entries. Since xsync generated changelog files processed one after
the other, so syncjobs are underutilized. hence low bandwidth
utilization.

With this patch, changelog will be generated for 8K entries only,
but stime will be accumulated. Multiple dirs stime will be
updated together since the generated changelog will have entries
accross the dirs.

Change-Id: Ib0b40962a070f855f47f887d0840e412fb7928e1
Signed-off-by: Aravinda VK <avishwan@redhat.com>
Reviewed-on: http://review.gluster.org/6744
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Venky Shankar <vshankar@redhat.com>
Tested-by: Venky Shankar <vshankar@redhat.com>
storage/posix: HANDLE_PFX is redundant use GF_HIDDEN_PATH instead

GF_HIDDEN_PATH usage would help in better readability of the code
and avoids bugs produced from redundant macro constants.

Change-Id: I2fd7e92e87783ba462ae438ced2cf4f720a25f5c
BUG: 990028
Signed-off-by: Harshavardhana <harsha@harshavardhana.net>
Reviewed-on: http://review.gluster.org/6756
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Raghavendra G <rgowdapp@redhat.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
cluster/dht: Set quota limit key in dht_selfheal of dirs.

Also fixed check in dht_is_subvol_in_layout to check if the
layouts are zero'ed out.

Change-Id: I4bf8ebf66d3ef1946309b6c9aac9e79bf8a6d495
BUG: 969461
Signed-off-by: shishir gowda <sgowda@redhat.com>
Signed-off-by: Varun Shastry <vshastry@redhat.com>
Reviewed-on: http://review.gluster.org/6392
Reviewed-by: Raghavendra G <rgowdapp@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
geo-rep: Fix no error when slave size less than master size

in df command output, default block-size is 1K, but BUFFER_SIZE is
in bytes, so verify will succeed even if slave size is less than
master size.

Added -B1 to df command(that is --block-size=1) to get all values in
bytes.

BUG: 1056518
Change-Id: I2384d2a6f2505d967e0538b95fbf111c15b26f30
Signed-off-by: Aravinda VK <avishwan@redhat.com>
Reviewed-on: http://review.gluster.org/6746
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
geo-rep: get new config value after config value reset

When config.read is called it preserves the previous values
from the the previously opened config file.

For example
import ConfigParser
config = ConfigParser.RawConfigParser()
config.read("defaults.conf")
config.read("preferences.conf")

When change in config file is identified it will open new
instance of config to avoid getting old config values.

Change-Id: Iec677e61ebd2c59c95aea94481f569d78bd913e4
Signed-off-by: Aravinda VK <avishwan@redhat.com>
Reviewed-on: http://review.gluster.org/6747
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
gfid-access: fix the issue of entry creation with wrong gfid

* dict_set was happening with a string instead of 'uuid_t' causing
  entry creations to happen with wrong gfid

* revalidate was causing excessive ESTALE logs as lookup was
  happening on '.gfid/' path itself causing server to become clueless

Change-Id: I3b76ce7fdec9c2ff785be21f506f859f489f80f0
BUG: 1054199
Signed-off-by: Amar Tumballi <amarts@redhat.com>
Reviewed-on: http://review.gluster.org/6520
Reviewed-by: Anand Avati <avati@redhat.com>
Tested-by: Anand Avati <avati@redhat.com>
protocol: pass the size of the data in the WRITE on-wire FOP

Capturing GlusterFS traffic with tcpdump and displaying it in Wireshark
shows that the size of all WRITEs are 0 bytes. It seems that the
attribute is not used, and the size is calculated an other way.

Even if the size attribute is not used (yet), it should be set correctly
to prevent confusing while debugging network traffic with Wireshark or
other tools.

Note that the on-wire format is not being changed with this patch. The
size is already part of the structure that is exchanged between the
client and server.

Change-Id: I9d67fe17bf203672116dea4948328e2af4004677
BUG: 1057264
Signed-off-by: Niels de Vos <ndevos@redhat.com>
Reviewed-on: http://review.gluster.org/6766
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vikhyat Umrao <vumrao@redhat.com>
features/compress: rename "compress" option to "network.compression"

Prevent mistaking the "compress" options for storage (at rest)
compression. The cdc-xlator is implemented to support compressing of
network traffic (READ and WRITE FOPs).

URL: http://www.gluster.org/community/documentation/index.php/Features/On-Wire_Compression_+_Decompression
Change-Id: I9fedf4106dcb226d135ab92e4b533aff284881d7
BUG: 1053670
CC: Venky Shankar <vshankar@redhat.com>
CC: Prashanth Pai <ppai@redhat.com>
Signed-off-by: Niels de Vos <ndevos@redhat.com>
Reviewed-on: http://review.gluster.org/6765
Reviewed-by: Prashanth Pai <ppai@redhat.com>
Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
cluster/stripe: Remove redundant code blocks

This appears to have been a cut&paste error.  The same set of 12 lines
was repeated three times, causing a pointer to allocated memory to be
overwritten twice resulting in a memory leak.

This patch removes the redundant code.

BUG: 789278
CID: 1128915

Change-Id: I3e4a3703b389c00e2a4e99e0a7368c5a3dda74d0
Signed-off-by: Christopher R. Hertel <crh@redhat.com>
Reviewed-on: http://review.gluster.org/6769
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
cluster/dht: goto statements may cause loop exit before memory is freed.

Memory is allocated at the top of the while loop via a call to
gf_strdup(), but there are several goto calls that exit the loop, and
the memory is not freed before each of those calls to goto.  This fix
moves the final call to GF_FREE() higher in the loop so that the memory
is correctly freed.

Two variables, dup_str and str_tmp1, point to portions of the allocated
memory.  Neither are used past the final call to GF_FREE( dup_str ).

BUG: 789278
CID: 1124780

Change-Id: Id24b80cdbfd8b8855c80fffec63d7fce98cbed4a
Signed-off-by: Christopher R. Hertel <crh@redhat.com>
Reviewed-on: http://review.gluster.org/6771
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>