system/posix-acl: fix acl inode assignment in posix_acl_readdirp_cbk

If an entry includes no ACL returned via dictionary, it is possible
to skip down to acl_set without updating acl_access and/or
acl_default. If either are set from the previous iteration, the
unrelated ACLs are set to the current entry. Use a single set of
pointers to ensure that valid ACLs are always set.

Change-Id: Ia94887ded91845bc39d4d5e95ef00d190681e517
BUG: 801183
Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-on: http://review.gluster.com/2903
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
system/posix-acl: fix reference counting in posix_acl_readdirp_cbk

unref. the acl pointers from posix_acl_get()

Change-Id: I1247f64ceded17bfa204d1b899ec56a27bef0cdb
Signed-off-by: Brian Foster <bfoster@redhat.com>
BUG: 801183
Reviewed-on: http://review.gluster.com/2904
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
cli, glusterd, nfs: "volume status|profile|top" for nfs servers

Enables usage of volume monitoring operations "volume status", "volume top" and
"volume profile" for nfs servers. These operations can be performed on
nfs-servers  by passing "nfs" as an option in cli. The output is similar to the
normal brick outputs for these commands.

The new syntaxes for the changed commands are as below,
 #gluster volume profile <VOLNAME> {start|info|stop} [nfs]
 #gluster volume top <VOLNAME> {[open|read|write|opendir|readdir [nfs]]
               |[read-perf|write-perf [nfs|{bs <size> count <count>}]]}
               [brick <brick>] [list-cnt <count>]
 #gluster volume status [all | <VOLNAME> [nfs|<BRICK>]]
          [detail|clients|mem|inode|fd|callpool]

Change-Id: Ia6eb50c60aecacf9b413d3ea993f4cdd90ec0e07
BUG: 795267
Signed-off-by: Kaushal M <kaushal@redhat.com>
Reviewed-on: http://review.gluster.com/2820
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Krishnan Parthasarathi <kp@gluster.com>
features/marker: Nameless lookup related fixes

while filling a loc structure, marker should not error out if loc->name
is NULL or loc->path is just a gfid.

Change-Id: Ie3a9cffde2d17da0377f1e41de93b099a9133abe
BUG: 801364
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Reviewed-on: http://review.gluster.com/2938
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
core, cli : Changes to statedump

This patch,
* Enables missing inodectx, fdctx dumpops for cli statedump command.
* Reintroduce changes introduced in statedump.c by 489a7a10 which were
  overwritten by db20a0f8.
* Change strncasecmp() in gf_proc_dump_parse_set_option() to strcasecmp()
  to properly parse similar options like fd-fdctx, inode-inodectx

Change-Id: I85ad854dce73048617b933d29cf360af9d0ed90a
BUG: 797788
Signed-off-by: Kaushal M <kaushal@redhat.com>
Reviewed-on: http://review.gluster.com/2914
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
glusterd: file perm change for glusterd.info

this is need for the vdsm gluster plugin, changing
glusterd.info file's permission to 644 from 600.

Change-Id: I9de39f1b8b31a6c2f448e2ff6601eb270d042343
BUG: 802217
Signed-off-by: Rajesh Amaravathi <rajesh@redhat.com>
Reviewed-on: http://review.gluster.com/2940
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Raghavendra Bhat <raghavendrabhat@gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
nfs: no need to recalculate the 'ino' from gfid

it is guaranteed to be sent properly from posix layer itself now

Change-Id: Ifbbf558f3bcfa609bf107a75c692003ca261ac0a
Signed-off-by: Amar Tumballi <amarts@redhat.com>
BUG: 800831
Reviewed-on: http://review.gluster.com/2923
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
rpc-lib/rpcsvc: nfs auth corrections

in comparing ip addresses during authentication,
we need to take only the ip address of the client
instead of the transport endpoint (ip:port).

Change-Id: If48eca37edea1d69deb150720fbaea0ea2443a00
BUG: 771845
Signed-off-by: Rajesh Amaravathi <rajesh@redhat.com>
Reviewed-on: http://review.gluster.com/2929
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
storage/posix: don't allow rmdir()/lookup() on HIDDEN_DIRECTORY

so that we won't even have a GFID set on the GFID dir itself.

Change-Id: I65be7d675a308f51f4c62a86499341412b20c47f
Signed-off-by: Amar Tumballi <amarts@redhat.com>
BUG: 802726
Reviewed-on: http://review.gluster.com/2936
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
distribute-rebalance: fix the logic of ENOENT handling

due to this, we were missing the entries from the last subvolume of
distribute for all the rebalance or remove-brick operations

Change-Id: I486f15c1d3d17cbf6f353f6179b2623af61f4868
Signed-off-by: Amar Tumballi <amarts@redhat.com>
BUG: 770346
Reviewed-on: http://review.gluster.com/2933
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Shishir Gowda <shishirng@gluster.com>
glusterd: Checked if peer is connected and 'handshaked' before sending updates

Change-Id: Ia57378d5c81b263d6fcbc9d54ccc7fb138d83d8e
BUG: 801731
Signed-off-by: Krishnan Parthasarathi <kp@gluster.com>
Reviewed-on: http://review.gluster.com/2941
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
performance/io-cache: store op_errno in page.

This will enable us to pass appropriate op_errno indicating EOF even
during cache-hits.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>

Change-Id: Ib239b5de9b8fca2bd8eb5ec87c93f2cb1c11a99c
BUG: 795789
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Reviewed-on: http://review.gluster.com/2939
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
mgmt/glusterd: provide an option to make a volume read-only

this can be triggered by "gluster volume set <VOLNAME> read-only on",
which adds read-only translator on server graph, thus making the
volume read-only.

Change-Id: Iee32e6b2f3022d16016534914a5198d1cd327e25
Signed-off-by: Amar Tumballi <amarts@redhat.com>
BUG: 798877
Reviewed-on: http://review.gluster.com/2915
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Kaushal M <kaushal@redhat.com>
Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
performance/quick-read: implement fini

Change-Id: I92d4e7ded470b0e97b699656a890bab8c113bf4f
BUG: 767862
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Reviewed-on: http://review.gluster.com/790
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
performance/read-ahead: cleanup xlator private data completely in fini.

Change-Id: I3bb143036557d7d3844dc825f6870140e414f85a
BUG: 767862
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Reviewed-on: http://review.gluster.com/792
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
cluster/afr: handle sending NULL dentry name for inode link in self-heal-daemon

* Without the dentry name, dentry cannot be created in inode_link, which
 leads to trying to access the null dentry to check if it is cyclic and
 thus segfault. So send the parent inode also NULL, which just returns
 the proper inode after assigning the gfid and type to the inode without
 trying to create dentry.

* Handle failures such as dentry_create returning NULL, in inode_link
  properly and return NULL in such cases.

* Increase the lru limit of inode table of self-heal-daemon to 2048

Change-Id: I7ae0e0e9be279d1694b6aafb5e054585e43f03ff
BUG: 801149
Signed-off-by: Raghavendra Bhat <raghavendrabhat@gluster.com>
Reviewed-on: http://review.gluster.com/2893
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
fuse-bridge/graph-cleanup: don't provide a cbk for cleanup syncop task

without a cbk, syntask_new returns only after the task is complete.
Hence we don't have to wait on a conditional variable in the caller.

Change-Id: Ie83894aa6fc02cc3a973930e67ae2b35de3b7647
BUG: 767862
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Reviewed-on: http://review.gluster.com/2870
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
performance/io-cache: cleanup the xlator private data completely in fini.

Change-Id: Ib8859c57e89248ccaad94662f88944e79ec28d5a
BUG: 767862
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Reviewed-on: http://review.gluster.com/791
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
locks: Fixed incorrect list ptr manipulation in clearing entrylks

Avoided unwinding blocked entry lock frames inside pl_inode->mutex.

Change-Id: I424c4a1762c889c1a567c588d4ca383a6c338886
BUG: 800412
Signed-off-by: Krishnan Parthasarathi <kp@gluster.com>
Reviewed-on: http://review.gluster.com/2878
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
nfs: do not call inode_path on the newly created inode

While resolving, for building the path into the loc, inode_find
is called with gfid as argument to get the inode from the inode
table. If the inode is not found, then a new inode is created.
Then the path is build using inode_path. But if the inode is
not linked to inode table (newly created inode), then gfid will
be null and inode_path returns null gfid as the path. Suppose the
lookup operation on that gfid fails, then we print the null gfid
in the log message.

To avoid it, build the path using the gfid only if inode_path
fails.

Change-Id: I2506fa8675761ddb0bc02980cd3583d9d068fc85
BUG: 802424
Signed-off-by: Raghavendra Bhat <raghavendrabhat@gluster.com>
Reviewed-on: http://review.gluster.com/2930
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>