summaryrefslogtreecommitdiffstats
path: root/booster/src
Commit message (Collapse)AuthorAgeFilesLines
* booster: use __REDIRECT macro to prevent creat being renamed to creat64.Raghavendra G2009-09-151-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - nm on libglusterfs-booster.so shows only creat64 defined but not creat. This behavior is observed due to following reasons. 1. Booster is compiled with _FILE_OFFSET_BITS=64. 2. fcntl.h when included with _FILE_OFFSET_BITS=64 defined, renames all occurences of creat to creat64 in the source code from the point of #include <fcntl.h>. fcntl.h should be included since booster.c uses many of the macros defined in that header and glusterfs (booster in turn) has to be compiled with _FILE_OFFSET_BITS=64 since glusterfs uses datatypes (off_t, stat etc) whose sizes vary depending on whether this macro is defined or not. Basically, this macro should be defined to provide portability across 32 and 64 bit architectures. The correct fix is to make glusterfs to use datatypes big enough to hold 64 bit variants as well as 32 bit variants (like int64_t replacing off_t) and not to define _FILE_OFFSET_BITS=64 at all. As a temporary work around, 1. we can implement creat functionality in a function with different name, say booster_false_creat 2. rename this function to creat using __REDIRECT macro. since this renaming happens after renaming of creat to creat64 (from the first __REDIRECT macro in fcntl.h), we will end up with creat symbol being defined in libglusterfs-booster.so Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 264 (creat is not resolved properly to the symbol defined in booster) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=264
* booster: use appropriate conversion specifier during logging in close.Raghavendra G2009-09-151-1/+1
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 262 (crash in booster close due to invalid conversion specifier during logging.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=262
* booster: Fix fd_t leak in pread64Shehjar Tikoo2009-09-091-0/+1
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 174 (booster: fd_ts, they are a leakin) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=174
* booster: Enhance booster loggingShehjar Tikoo2009-09-093-71/+547
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 210 (libglusterfsclient: Enhance logging) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=210
* booster: Support backward compatible optionsShehjar Tikoo2009-09-021-0/+6
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 209 (VMP parsing through fstab has issues) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=209
* changed booster fstab to parse the arguments same as mount.glusterfsAmar Tumballi2009-08-201-2/+2
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 209 (VMP parsing through fstab has issues) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=209
* booster: Fix fd leak due to incorrect NULL checkShehjar Tikoo2009-07-291-1/+1
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 174 (booster: fd_ts, they are a leakin) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=174
* booster: automake 1.11 compatibility fixCsaba Henk2009-07-021-1/+1
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: Fix build problems with various libtool versionsShehjar Tikoo2009-06-292-12/+20
| | | | | | | | | | | | | | | | | | | | We've been facing a problem on some test systems where the booster.so is built by libtool as an executable rather than a dynamically loadable library. This problem is probably caused by it seeing a _init function in the source. This is the name of the libc initiliazation function so it could be the source of the problem. In any case, ld-preloadable libraries must not have a function called _init, instead they need to have __attribute ((constructor)) as the attribute for any and all functions the library wants executed before the program's main(). Our earlier approach was inherently problematic. This commit also cleans up the booster Makefile for better build behaviour. Credit: Harsha. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: Another attempt to fix 32 and 64 bit interoperabilityShehjar Tikoo2009-06-291-17/+27
| | | | | | | | | | | | With this patch, we might have finally arrived at a solution to the problem of function definition conflicts between our functions and those of libc while over-riding the libc versions. This commit defines functions which do not conflict with libc, then it uses libc's own macro to redirect/rename these functions to the actual sys call names in the binary. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: Add new booster-specific fd-tableShehjar Tikoo2009-06-294-139/+438
| | | | | | | | | | | The reason we need a booster specific fd-table is because the libglusterfs fd-table has come to a point where it is optimized for libglusterfs-style of fd allocations. This conflicts with the way booster requires fds to be allocated so this commit brings in a re-based version of a booster-specific fd-table written by Raghu. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: fix build error in fcntl implementation.Raghavendra G2009-06-151-1/+7
| | | | | | - F_DUPFD_CLOEXEC is defined only in linux kernel versions >= 2.6.24 Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: fix memory corruption in booster_cleanupRaghavendra G2009-06-111-4/+10
| | | | | | | - calling glusterfs_umount_all leads to memory corruption. hence commenting out for timebeing. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: implement fcntl.Raghavendra G2009-06-111-1/+104
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: implement readdir_r and readdir64_r.Raghavendra G2009-06-112-0/+70
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: call glusterfs_umount_all during cleanupRaghavendra G2009-06-111-0/+4
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: implement sendfile.Raghavendra G2009-06-111-0/+58
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: remove mount table which maps a path to glusterfs handler.Raghavendra G2009-06-111-236/+86
| | | | | | | | | | - if there are any glusterfs mounts(real, not virtual) which are not specified through booster-fstab those mounts are also added to the virtual mountpoint list of libglusterfsclient. This also removes the mount table in booster and all the mounts whether they are real or virtual are handled by libglusterfsclient. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: attr_timeout: Read timeout from booster fstabShehjar Tikoo2009-06-031-0/+17
| | | | | | | | | In order to expose the timeout values for stat and inode caching, this commit introduces a new fstab option "attr_timeout" that defines the number of seconds for which a looked up inode or a stat()'ed structure is valid in the cache. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: Clean-up handling of log/fstab env variablesShehjar Tikoo2009-06-021-5/+14
| | | | | | | | | | | | | Handle two cases when deciding log/fstab file: 1. It turns out that that strdup or strlen doesnt actually check for NULL before trying to do its thing with the string so it seg-faults on seeing a NULL char pointer. 2. getenv can return an empty string if the env var was exported as: $ export GLUSTEFS_BOOSTER_LOG= Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: Eliminate gluster context creation raceShehjar Tikoo2009-06-021-92/+133
| | | | | | | | | | | | When multiple threads try to create a glusterfs context using the glusterfs_init function, those threads end up using the global vairables in the vol file parser in an non-synchronized manner, resulting in a seg-fault. There is now a big lock around searches and additions from the mount table in do_open. This lock granularity could be reduced. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: Clear up env var usageShehjar Tikoo2009-06-021-1/+14
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* add booster_fstab.h in noinst_HEADERS to fix build breakage after 'make dist'Anand Avati2009-05-261-0/+1
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: Move fstab parsing into booster from libglusterfsShehjar Tikoo2009-05-204-109/+500
| | | | | | | | | | | This is another attempt at fixing build problems on Solaris. I am told that booster build is disabled on Solaris and I know that it is disabled on Mac OS X also. Getting it to work on both these systems is now on my TODO list, mainly because on both these systems, we can have a glusterfs client running without requiring FUSE. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: Fall back to remaining real_* functorsShehjar Tikoo2009-05-191-13/+36
| | | | | | | | | It is possible that some of the real_* functors for stat family of syscalls are NULL. I've seen this on libc. In that case, this commit attempts to use any available function that performs an equivalent operation. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* booster: Dont de-init fd tables on VMP-init failureShehjar Tikoo2009-05-191-17/+5
| | | | | | | | In case the init procedure for VMP fails, we want to continue using booster through the old approach, which means leaving the fd-table intact. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* booster: Do not read info for non-glusterfs mount pointsShehjar Tikoo2009-05-191-0/+3
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* booster: Add telldir APIShehjar Tikoo2009-05-182-0/+38
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* booster: Add seekdir APIShehjar Tikoo2009-05-182-0/+36
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* booster: Add rewinddir APIShehjar Tikoo2009-05-182-0/+37
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* booster: Supplement fstab option parsingShehjar Tikoo2009-05-181-6/+14
| | | | | | | | Previous fstab option parsing logic was completely retarded and did not handle all cases. This fixes the situation so we now work without any problems. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* booster: Add fstab parsing supportShehjar Tikoo2009-05-081-57/+74
| | | | | | | | | | | | | This commit changes the booster.conf format from a simple custom format to that of the /etc/fstab.c See booster_mount(..) for the mount options supported/required for LD_PRELOADing booster. I'll write a small help doc soon. This commit also brings in fstab parsing code into libglusterfs because Darwin libc only supports reading the hardcoded /etc/fstab. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* booster: Standardize conf file and env variableShehjar Tikoo2009-05-081-2/+2
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* booster: Use CONFDIR as booster.conf default locationShehjar Tikoo2009-05-061-1/+1
| | | | | | | | This commit changes the default location of the booster.conf file from /etc/booster.conf to a directory defined during the build process. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* booster: Change booster conf env var nameShehjar Tikoo2009-05-061-1/+2
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* booster: Add lchown APIShehjar Tikoo2009-05-051-0/+23
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* booster: Add remove APIShehjar Tikoo2009-05-051-0/+22
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* booster: Add getxattr,lgetxattr APIShehjar Tikoo2009-05-051-1/+47
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* booster: Add readdir64 APIShehjar Tikoo2009-05-052-1/+14
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* booster: Add statvfs APIShehjar Tikoo2009-05-052-0/+65
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* booster: Add statfs APIShehjar Tikoo2009-05-052-0/+64
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* booster: Add lstat APIShehjar Tikoo2009-05-052-0/+127
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* booster: Add fstat APIShehjar Tikoo2009-05-052-0/+141
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* booster: Add stat APIShehjar Tikoo2009-05-053-2/+153
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* booster: Add closedir APIShehjar Tikoo2009-05-051-0/+33
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* booster: Add readdir APIShehjar Tikoo2009-05-051-0/+32
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* booster: Add opendir APIShehjar Tikoo2009-05-051-0/+51
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* booster: Add realpath APIShehjar Tikoo2009-05-051-0/+20
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* booster: Add readlink APIShehjar Tikoo2009-05-051-0/+20
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* booster: Add symlink APIShehjar Tikoo2009-05-051-0/+20
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>