summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* xlator options: revamp xlator option validation/reconfigure codeAnand Avati2011-08-1825-3826/+1668
| | | | | | | | | | | | | | | | | - move option handling to options.c (new file) - remove duplication of option validation code - remove duplication of gf_log / sprintf - get rid of xlator_t->validate_options - get rid of option validation in rpc-transport - get rid of validate_options() in every xlator - use xlator_volume_option_get to clean up many functions - introduce primitives to init/reconfigure option types Change-Id: I51798af72c8dc0a2b9e017424036eb3667dfc7ff BUG: 3415 Reviewed-on: http://review.gluster.com/235 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* do rpcsvc_init() after we fill nfs_state structure and add to nfsx->options ↵krishna2011-08-181-11/+10
| | | | | | | | | | keys for allowing insecure client ports. Change-Id: Iae755d1460f2c7296fc7980b5257afcf778e7767 BUG: 3296 Reviewed-on: http://review.gluster.com/247 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* rpc-clnt: fix merge error of http://review.gluster.com/248Anand Avati2011-08-171-2/+6
| | | | | | | | | | | cherrypicked patch did not have the logic to reset port number to reconnect to glusterd. Change-Id: I78c903d5a28626f83b5024bd323e77b5f159e374 BUG: 3409 Reviewed-on: http://review.gluster.com/254 Reviewed-by: Amar Tumballi <amar@gluster.com> Tested-by: Gluster Build System <jenkins@build.gluster.com>
* glusterd: fix for volume stop causing inconsistent volume statusKaushal M2011-08-172-7/+10
| | | | | | | | | | | | | This fixes problem caused by race between glusterd and glusterfsd occuring when they try to unlink pidfile during volume stop, which led to the volume being stopped, but the status of the volume remained in started state. Change-Id: Ia99bb1a1fc6c78db138211538dfd10c577e82917 BUG: 3147 Reviewed-on: http://review.gluster.com/206 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* rpc-clnt: perform XDR encoding in unlocked regionAnand Avati2011-08-171-41/+36
| | | | | | | | Change-Id: Ia11c3ced4bec5959a5f0d8fcd4c6070b2ead220a BUG: 3409 Reviewed-on: http://review.gluster.com/248 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* allocate extra bytes (for \0) when calling reallocVenky Shankar2011-08-171-1/+2
| | | | | | | | | | | | We use strcat to concat pathinfo strings. strcat appends a \0 at the end. Therefore allocate extra bytes for the same to avoid asserts being hit during gf_free call Change-Id: I582f5858e7375a5bacfc5c702c612ee09c3bb355 BUG: 3413 Reviewed-on: http://review.gluster.com/249 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amar@gluster.com>
* Revert "Make sure glusterd and glusterfsd use the same address family"Anand Avati2011-08-171-52/+0
| | | | | | | | | | | This reverts commit 1dade36a6dfc6cae5559d5139f6b733e1b6fded1 This commit breaks glusterd. The insertion of --xlator-option=<transport family> in between --brick-port and <port> fails command line validation during glusterfsd start. Change-Id: I40186ca89d1d16cf798404747771353b1f1a3e1d Reviewed-on: http://review.gluster.com/251 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* Revert "Remove white spaces"Anand Avati2011-08-171-4/+4
| | | | | | | | | | | This reverts commit 6ab425e4f3d34b1467f694ada9a36eacfac9bf3c Dependency revert for http://review.gluster.com/229 Change-Id: I7c4fcc45a6c25aedf4f06cbdeedc1fecbe424f45 Reviewed-on: http://review.gluster.com/250 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* do not init nfs->override_portnum to GF_NFS3_PORTkrishna2011-08-171-1/+0
| | | | | | | | Change-Id: I7dc26b64a177ce5d30352cf7c531f38517c0368a BUG: 3308 Reviewed-on: http://review.gluster.com/155 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Shehjar Tikoo <shehjart@gluster.com>
* Remove white spacesEmmanuel Dreyfus2011-08-161-4/+4
| | | | | | | | Change-Id: I646c0c8e70268de6a20bb23dc3834ac6f5d2bbf2 BUG: 3422 Reviewed-on: http://review.gluster.com/245 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* Make sure glusterd and glusterfsd use the same address familyEmmanuel Dreyfus2011-08-161-0/+52
| | | | | | | | | | | NB: This was heavily tested on 3.2.2, but code has changed a lot in the area. This patch itself is untested. Change-Id: Ie472f04b0804276c2d8a9efc5c96106c33029498 BUG: 3422 Reviewed-on: http://review.gluster.com/229 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* adjust allocated length to memory overrun fixVenky Shankar2011-08-151-3/+4
| | | | | | | | | | | size of the allocated length is incorrectly calculated which could cause memory overrun while filling the buffer Change-Id: I4fbdbd1fff937ca15bae9f634ef5757dda52caa8 BUG: 3413 Reviewed-on: http://review.gluster.com/236 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* cluster/afr: read_child should be >= 0Pranith Kumar K2011-08-131-1/+3
| | | | | | | | Change-Id: I447fb6a93cdd77de322cd5ded30673411c4cf79e BUG: 3251 Reviewed-on: http://review.gluster.com/233 Reviewed-by: Vijay Bellur <vijay@gluster.com> Tested-by: Gluster Build System <jenkins@build.gluster.com>
* - Use linkat(2) instead of link(2) so that linking to symlink work onEmmanuel Dreyfus2011-08-122-0/+25
| | | | | | | | | | | non Linux systems - Also use mkfifo to create FIFO on NetBSD: it does not wotk with mknod Change-Id: I19ffd22b4d79009ef5f9d4a50fc6dd556c3c3ff4 BUG: 2923 Reviewed-on: http://review.gluster.com/226 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* POSIXly correct: \n replacement is GNU sed specificEmmanuel Dreyfus2011-08-121-1/+1
| | | | | | | Change-Id: I5e4ca551b60477d454964e568209ad06f21cc64e Reviewed-on: http://review.gluster.com/227 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* Allow georeplication for NetBSDEmmanuel Dreyfus2011-08-121-0/+3
| | | | | | | | Change-Id: Id8d62f4f83255c67a5aa615aed23ba44c182290e BUG: 2923 Reviewed-on: http://review.gluster.com/220 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* Build fix for NetBSDEmmanuel Dreyfus2011-08-121-1/+13
| | | | | | | | Change-Id: Icb0163d61bfbd3bad520c06a655f80ec05fc3fb2 BUG: 2923 Reviewed-on: http://review.gluster.com/214 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* Build fixEmmanuel Dreyfus2011-08-121-0/+1
| | | | | | | | Change-Id: I10dca7aee73df31f8b279591852d6ac19eab8ccc BUG: 2923 Reviewed-on: http://review.gluster.com/228 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* For systems where O_DIRECTORY does not exist, we defined it as 0,Emmanuel Dreyfus2011-08-121-1/+1
| | | | | | | | | | | therefore ((flags & O_DIRECTORY) == O_DIRECTORY) is always true even if the flag is not set. Change-Id: Ie7837d521ea20b36ed70cf93c1763c226ff0e9f0 BUG: 2923 Reviewed-on: http://review.gluster.com/213 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* Do not distribute UFS1 extended attribute backing storeEmmanuel Dreyfus2011-08-121-0/+14
| | | | | | | | Change-Id: Ie05751aa8d96a2f7996843a914e1a66df2777eba BUG: 2923 Reviewed-on: http://review.gluster.com/222 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* One more missing change :-/Emmanuel Dreyfus2011-08-121-1/+1
| | | | | | | Change-Id: I6eeaee73e7c9124a1959acb2fe47d5cad3a3baac Reviewed-on: http://review.gluster.com/225 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* Use bourne shell, fix error in previous commitEmmanuel Dreyfus2011-08-121-8/+8
| | | | | | | Change-Id: Id2a304d5090eb2564c5d56ea260fa53b9b17d0d5 Reviewed-on: http://review.gluster.com/223 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* sed -i is available from GNU sed, but is not portable. Output to a newEmmanuel Dreyfus2011-08-111-2/+3
| | | | | | | | | file and move it to the original one on success instead. Change-Id: Ib23dd9becd035054e6490dcb4d64b3f9eff89bf4 Reviewed-on: http://review.gluster.com/212 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* RO: fix read-only xlator support broken due to worm xlator fixshishir gowda2011-08-111-1/+1
| | | | | | | | Change-Id: I7234909eecdc6af1b8482465f19d0490fcba94ad BUG: 3166 Reviewed-on: http://review.gluster.com/210 Reviewed-by: Vijay Bellur <vijay@gluster.com> Tested-by: Gluster Build System <jenkins@build.gluster.com>
* WORM: Write Once Read Many times xlator supportshishir2011-08-1010-221/+516
| | | | | | | | | | | | This xlator will allow files to be opened for write in append mode only. Mount with --worm(glusterfs) or -o worm (mount) option to enable worm xlator Change-Id: I1be02fcf2aee2182ea2c66b514357918136fabeb BUG: 3166 Reviewed-on: http://review.gluster.com/23 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* posix-acl: disable permission checks for fd based opsAnand Avati2011-08-101-0/+2
| | | | | | | | | | | | | | | | | | | | | | | If write calls are coming in through an fd with O_RDWR or O_WRONLY flag then a permission check is unnecessary. However writes from NFS ideally need a "stateless" check in each call and this results in a permission failure due to the read-only mode (disregarding the FD's writeability). For now it is acceptable to disable write checks as almost always the NFS client would already be doing such basic access control. Also because the previous access-control translator (prior to posix ACL introduction) too was permitting writes and reads unconditionally. In fact the Linux KNFS server too assumes the NFS client would have done the permission check. Change-Id: I33e5de8911a87881f9341b8b92574780c2dfbeba BUG: 3388 Reviewed-on: http://review.gluster.com/208 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* Change Copyright current yearPranith Kumar K2011-08-10396-399/+399
| | | | | | | | Change-Id: I2d10f2be44f518f496427f257988f1858e888084 BUG: 3348 Reviewed-on: http://review.gluster.com/200 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* fix build issues in Mac OS X (10.6)Amar Tumballi2011-08-102-0/+3
| | | | | | | | Change-Id: Ifc6f156441f6545d579c3fac2fffca36fb395951 BUG: 3354 Reviewed-on: http://review.gluster.com/196 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Shishir Gowda <shishirng@gluster.com>
* fuse-resolve: prevent linking of inodes of different inode-tableAmar Tumballi2011-08-102-25/+40
| | | | | | | | | | | | | | | | | | This can happen in deep_resolve_cbk, which happens after a graph switch. Root cause was because the graph change happened while a FOP was in transit and by the time the call came back, the active translator of fuse is now changed. Fix is to make sure the resolve operation happens on a given inode table, instead of taking the latest graph of fuse for each operation Change-Id: Idd6e2d5c2d5fc5d571f7a1fbc174e210babf8a2b BUG: 3355 Reviewed-on: http://review.gluster.com/195 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Shishir Gowda <shishirng@gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* pass xlator pointer to rpcsvc_init() so that it can init svc->mydata to xlatorkrishna2011-08-096-6/+8
| | | | | | | | Change-Id: Icfd95cc67400c16a951d6a9f922fbdc07f40c5b6 BUG: 3314 Reviewed-on: http://review.gluster.com/180 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* NFS server: allow clients to connect from insecure (>1024) ports and support ↵krishna2011-08-073-0/+97
| | | | | | | | | | | for both rpc-auth-allow-insecure and rpc-auth.ports.insecure Change-Id: I4e3fbfe37d6d3e8443d5b7b79faf6e364fdb87be BUG: 3296 Reviewed-on: http://review.gluster.com/178 Reviewed-by: Shishir Gowda <shishirng@gluster.com> Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* Changes to EXCEPTIONS and included EXCEPTIONS in packagingVijay Bellur2011-08-073-4/+12
| | | | | | | | Change-Id: I6c5c1536016489bf6b981356942901f69862393a Reviewed-on: http://review.gluster.com/188 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amar@gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* LICENSE: s/GNU Affero General Public/GNU General Public/Pranith Kumar K2011-08-06394-1240/+1259
| | | | | | | | Change-Id: I3914467611e573cccee0d22df93920cf1b2eb79f BUG: 3348 Reviewed-on: http://review.gluster.com/182 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* cluster/dht: clear local->cached_subvol when switching to do_fresh_lookupAnand Avati2011-08-061-0/+1
| | | | | | | | | | | | The presence of local->cached_subvol makes dht_lookup_everywhere_done behave as though it was a lookup on a file where linkfile needs to be recreated. In a fresh lookup, local->cached_subvol should be NULL. Change-Id: Ie6bd6ad536def03d970526d51e20c6daeb00922b BUG: 3317 Reviewed-on: http://review.gluster.com/187 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* Replace mktemp(3) with mkstemp(3).Sachidananda Urs2011-08-051-1/+1
| | | | | | | | | | | | | | | Man page states: Some implementations follow 4.3BSD and replace XXXXXX by the current process ID and a single letter, so that at most 26 different names can be returned. Since on the one hand the names are easy to guess, and on the other hand there is a race between testing whether the name exists and opening the file, every use of mktemp() is a security risk. The race is avoided by mkstemp(3). Change-Id: Ida95403b55024ecd07ef811a0835e01a9a7f092b BUG: 3331 Reviewed-on: http://review.gluster.com/163 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amar@gluster.com>
* features/marker-quota: Performance improvement.Junaid2011-08-053-12/+122
| | | | | | | | | | | With this patch new transactions will not be triggered if an updation is already in progress on that inode. Change-Id: I587385498c4b2af8bd9624ca41c60742c5ef2485 BUG: 2988 Reviewed-on: http://review.gluster.com/76 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Raghavendra G <raghavendra@gluster.com>
* save even more treesAnand Avati2011-08-051-1/+10
| | | | | | | | | | | make the build even more quiet. make anush even more happy by saving even more trees. Change-Id: I301aba34e4470805114989650a13f9fe35f42d35 BUG: 3255 Reviewed-on: http://review.gluster.com/176 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* save more treesAnand Avati2011-08-052-0/+7
| | | | | | | | | | make the build more silent Change-Id: Ied4c87c40af4b1f1034af4a13c1153d82883751b BUG: 3255 Reviewed-on: http://review.gluster.com/171 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* Provides an upstart job for glusterd on Ubuntu, solving Bug 3282Louis Zuckerman2011-08-032-0/+37
| | | | | | | | | | | | | | | Mounting from localhost in fstab fails at boot on ubuntu when glusterd is started by debian initscript. A new directory, extras/Ubuntu, contains the new upstart job (glusterd.conf) and a brief README.Ubuntu file. This makes the upstart job available to package maintainers like the SysV initscripts are in extras/init.d. This has been tested on Ubuntu 10.10 Maverick. Change-Id: I6ccd06054e920cd6dc45dba4eb8ab89aa30f8b47 BUG: 3282 Reviewed-on: http://review.gluster.com/126 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* storage/posix: handle dictionary being NULL in a functionAmar Tumballi2011-08-032-1/+4
| | | | | | | | | | | also print a warning message if dictionary is NULL, while sending a mkdir request in distribute self-heal. Change-Id: Ib9cac6ed1635203802f089986f8acb1ce416265d BUG: 3215 Reviewed-on: http://review.gluster.com/136 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Shishir Gowda <shishirng@gluster.com>
* features/marker: log failures due to file not being present during quota ↵Raghavendra G2011-08-031-27/+69
| | | | | | | | | | | | updation transaction in DEBUG. Change-Id: I6733586ba56ed4fdc2abbef63c38b8c491f89819 BUG: 3143 Signed-off-by: Raghavendra G <raghavendra@gluster.com> Reviewed-on: http://review.gluster.com/32 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Mohammed Junaid <junaid@gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* glusterd rebalance: handle a race condition while starting a rebalanceAmar Tumballi2011-08-031-2/+1
| | | | | | | | | | | | | due to the race, there was a possibility of having two (or more) threads doing glusterd_defrag_start(), which would cause different thread to access same pointer, and at some point making it NULL, causing other threads to crash with SEGV. Change-Id: Id05b99dd6f33329027b8a07f1c8da5a65fd6dae9 BUG: 3295 Reviewed-on: http://review.gluster.com/138 Reviewed-by: Anand Avati <avati@gluster.com> Tested-by: Gluster Build System <jenkins@build.gluster.com>
* DHT rename: Recreate linkfile after unlinkshishir gowda2011-08-033-144/+50
| | | | | | | | | | | | | This is done, so that there is no gfid mismatch. Unlink the older linkfile if it exists, and recreate it with the correct gfid. Also removed unused rename related code. Change-Id: Ice0cdff51db786dafb1a019f7642c7d000e8c5f3 BUG: 2522 Reviewed-on: http://review.gluster.com/142 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* mgmt/glusterd: Ignore case in friend find by hostnamePranith Kumar K2011-08-031-4/+4
| | | | | | | | Change-Id: I8dabf07ebb30ec500d847c11d5c72c2d87d10239 BUG: 3309 Reviewed-on: http://review.gluster.com/145 Reviewed-by: Vijay Bellur <vijay@gluster.com> Tested-by: Gluster Build System <jenkins@build.gluster.com>
* Remove redundant function `cli_path_strip_trailing_slashes'.Sachidananda Urs2011-07-312-22/+0
| | | | | | | | | | Use cli_canonicalize_path instead, to remove trailing/duplicate slashes. Change-Id: Ie76267a4fa9ee9986cb36039afad4dfff830d5f8 BUG: 3183 Reviewed-on: http://review.gluster.com/124 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* Variable IOBUF: Use variable iobuf for cli/glusterd/glusterfsd(mgmt)shishir gowda2011-07-3114-107/+212
| | | | | | | | | | | | By using variable iobufs, xfer data size is no more limited to 128K (default). This helps in scaling. Change-Id: Iab453db9223d887306d150cd6fe0b1eae9c422cc BUG: 2472 Reviewed-on: http://review.gluster.com/13 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amar@gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* IOBUF: Bring in variable iobuf supportshishir gowda2011-07-3110-123/+292
| | | | | | | | | | | Rebasing Raghavendra's patch to master Change-Id: Ie7a0c9a7b8e73cfe48c4573a5153460d5126208e BUG: 2472 Reviewed-on: http://review.gluster.com/12 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amar@gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* glusterfsd: initialize sigset_t in sigwaiterAnand Avati2011-07-311-0/+1
| | | | | | | | | | Thanks to kkeithle@redhat.com for pointing out. Change-Id: I8167ffffddbdbc3dc09f7474bd834dbf4a49db9b BUG: 3280 Reviewed-on: http://review.gluster.com/129 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amar@gluster.com>
* gsyncd: do some basic sanitization on logsCsaba Henk2011-07-295-24/+60
| | | | | | | | | | | | - exceptions raised by us will be logged as single-line error messages (full stack strace is shown only at DEBUG loglevel) - common/well understood exceptions are mapped to "user-parsable" error logs Change-Id: I75f1fb848483372364b2093878d9cfed576c9739 BUG: 2778 Reviewed-on: http://review.gluster.com/125 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* RPC unify code changekrishna2011-07-2939-5501/+1389
| | | | | | | | | Change-Id: Ibe18a2a63fd023ac57652c4dfc8ac8a69d983b83 BUG: 3112 Signed-off-by: krishna <krishna@gluster.com> Reviewed-on: http://review.gluster.com/116 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amar@gluster.com>