gfapi: fix read past EOF in glfs_preadv()

When syncop_preadv() returns 0, we are returning @size as-is
(without modifying user passed buffer). This results in
junk data being read when read offset is at or beyond EOF.

Change-Id: I8aa9c957359f9a52833b944b452f501b6f5538d3
BUG: 953694
Signed-off-by: Anand Avati <avati@redhat.com>
Reviewed-on: http://review.gluster.org/5237
Reviewed-by: Raghavendra Talur <rtalur@redhat.com>
Reviewed-by: José Rivera <jrivera@redhat.com>
Tested-by: José Rivera <jrivera@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
build: sync glusterfs.spec.in with Fedora glusterfs.spec

(This is the release-3.4 branch.)

 * remove G4S/UFO from community packaging. The Fedora/EPEL packaging
   will follow suit once the glusterfs-openstack-swift packaging
   materializes from the G4S team. Note that for the time being 'make dist'
   still creates a UFO tarball from the .../ufo directory for use by
   fedora packaging.
 * add glusterfs-api and glusterfs-api-devel sub-packages
 * add extras/systemd/glusterd.service. Use it (or extras/init.d/glusterd)
   instead of the Fedora versions.
 * restores ability to build glusterfs RPMs from the dist tarball with
   'rpmbuild {-ts,-tb,-ta} glusterfs-XXX.tar.gz'
 * reverse {--with,--without}_fusermount in sync with fedora .spec and
   master branch
 * other minor cleanups mostly to sync with fedora .spec and to build
   from the dist tarball. Any differences will be resolved in the fedora
   .spec in the next release (i.e. beta4 or GA).
 * this is nominally for "the impending merge of .../api from master" but
   should be independent of that change.

(still deciding whether to add the fedora glusterfsd.{init,service) files
here or remove them from fedora.)

BUG: 819130
Change-Id: I90c7355ca02239995b1df7646e3cd10ec227bcc5
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
Reviewed-on: http://review.gluster.org/5179
Reviewed-by: Niels de Vos <ndevos@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
rpm: move the mount/api xlator to the glusterfs-api sub-package

The main glusterfs package included the xlator/api.so file which caused
a dependency on the glusterfs-api package:

  # rpm -i glusterfs-3.4.0-0.6.beta3.el6.x86_64.rpm
  error: Failed dependencies:
  libgfapi.so.0()(64bit) is needed by glusterfs-3.4.0-0.6.beta3.el6.x86_64

Moving the mount/api xlator to the glusterfs-api package will prevent
the automatic dependency generator to add the dependency to the main
package.

Change-Id: I333c6b61dfc239a7b0beca313aa5928f4e197937
BUG: 819130
Reported-by: Vijay Bellur <vbellur@redhat.com>
Signed-off-by: Niels de Vos <ndevos@redhat.com>
Reviewed-on: http://review.gluster.org/5254
Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
build: declare lvm_lv_from_name() if it is missing from lvm2app.h

The bd-xlator can not be built successfully on certain Debian
distributions due to a missing declaration of lvm_lv_from_name(). This
function is available for linking, but it does not exist in the header
file.

This change adds a detection for lvm_lv_from_name() in both the library
for linking, and the declaration in the header file. If the 1st is
missing, the bd-xlator can not be built, and if only the 2nd one is
missing, we'll declare lvm_lv_from_name() ourselves. This makes it
possible to build the bd-xlator on the affected Debian distributions
too.

Change-Id: If1845f6b6d676793677ebbcc6daf9ff12f7c3fd6
BUG: 976946
Signed-off-by: Niels de Vos <ndevos@redhat.com>
Reviewed-on: http://review.gluster.org/5260
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>