summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* cluster/afr: Use user-supplied struct flock to STACK_WINDVikas Gorur2009-07-271-1/+0
| | | | | | | | | | | | afr_lk_cbk: Use the original struct flock supplied by the user to do further STACK_WIND's, and not the flock returned by the previous STACK_WIND. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 159 (Client hangs when coherent byte range locks is attempted in replicate setup) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=159
* libglusterfsclient: Workaround for local memory corruptionShehjar Tikoo2009-07-271-1/+1
| | | | | | | | | | | | There seems to a reproduceable corruption specifically of the libglusterfs_client_local_t that is allocated for the read call. Therefore, the subsequent access to fd inside local leads to a segfault. This is a temporary fix. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 164 (libglusterfsclient: Segfault due to memory corruption of frame local in libgf_client_read) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=164
* cluster/afr: Return same inode number in stat buf for readv_cbkVikas Gorur2009-07-272-0/+4
| | | | | | | | | | Remember the inode number that had been returned in lookup_cbk and set the stat buf->ino to the same. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 166 (libglusterfsclient: Cached stat buf inode is different from ino in inode_t) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=166
* cluster/afr: Set inode number in unwind_buf in the inode-write calls.Vikas Gorur2009-07-271-17/+17
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 166 (libglusterfsclient: Cached stat buf inode is different from ino in inode_t) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=166
* libglusterfsclient: Avoid overwrite of inode found through ino numberShehjar Tikoo2009-07-271-3/+8
| | | | | | | | | | | | | | | | | In libgf_client_loc_fill, there is a possibility that all the ino, par and name are specified as non-NULL,non-zero args. So if an inode is located in the itable using the ino and the subsequent search for the inode using the par-ino and the file name does not result in an inode being found, the current code over-writes the inode that was found through the ino. The correct behaviour is to stop further searches if inode was already found using ino. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 161 (unfs3 crashes on link system call by fileop) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=161
* libglusterfsclient: Fill new loc with target's ino on linkShehjar Tikoo2009-07-271-0/+1
| | | | | | | | | | | | | | | In the loc_t of the link being created, we must fill in the inode of the old/target loc since this is a link operation. The inode_link to the new parent is called in libgf_client_link. This fixes a crash while running fileop over a fully-loaded dist-repl vol file. Ref: Bugzilla 161 Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 161 (unfs3 crashes on link system call by fileop) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=161
* enable libglusterfsclient build by defaultAnand V. Avati2009-07-231-1/+1
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* libglusterfsclient: Fake a fsid for every VMPShehjar Tikoo2009-07-205-6/+72
| | | | | | | | | | | | This is needed to work around the replicate behaviour of possibly returning device number for the same file from different subvolumes. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 148 (replicate: Returns st_dev from different subvols resulting in ESTALE thru unfs3booster) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=148
* libglusterfsclient: Move DHT root-lookup workaround to initShehjar Tikoo2009-07-202-15/+12
| | | | | | | | | | | | | | | The workaround for the DHT requirement for a lookup on / needs to be done only once when the xlator graph is inited. Doing it on every path's lookup results in a major performance penalty when using distribute subvolumes upwards of 16, as reported by Avati. Ref: bug 152 Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 152 (libglusterfsclient: DHT workaround is a major performance bottleneck) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=152
* added timestamp to crash dump log.Amar Tumballi2009-07-201-4/+19
| | | | | | | | | also did some minor enhancements in formating Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 151 (crash dump log should be in 'logviewer' friendly format) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=151
* fix build warnings in 'libglusterfsclient'Amar Tumballi2009-07-201-1/+5
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 130 (build warnings) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=130
* fix build warnings in 'afr'Amar Tumballi2009-07-202-6/+18
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 130 (build warnings) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=130
* fix build warnings in 'server-protocol'Amar Tumballi2009-07-202-26/+47
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 130 (build warnings) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=130
* fix build warnings in 'client-protocol'Amar Tumballi2009-07-201-7/+19
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 130 (build warnings) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=130
* fix build warnings in 'io-cache'Amar Tumballi2009-07-201-1/+7
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 130 (build warnings) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=130
* fix build warnings in 'auth' moduleAmar Tumballi2009-07-202-5/+33
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 130 (build warnings) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=130
* fix build warnings in glusterfsdAmar Tumballi2009-07-201-22/+41
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 130 (build warnings) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=130
* fix build warnings in 'libglusterfs/'Amar Tumballi2009-07-208-53/+145
| | | | | | | | | | | return value of 'asprintf' was not checked, and the flow was continuing without returning error, which could cause potential segfaults in code (mostly possible during ENOMEM case). Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 130 (build warnings) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=130
* posix getxattr supports new key 'trusted.glusterfs.location'Amar Tumballi2009-07-202-0/+24
| | | | | | | | | | which can be used to get the file location by 'hostname' of the machine where file resides. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 131 (provide a way to get the file location in clustered storage) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=131
* removed mod_glusterfs from the buildAmar Tumballi2009-07-172-107/+1
| | | | | | | future plan is to have httpd use booster and libglusterfsclient instead. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* libglusterfsclient: Invalidate not update iattr cache on writevShehjar Tikoo2009-07-172-2/+48
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 149 (libglusterfsclient interacts incorrectly with write-behind on writev) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=149
* Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/glusterAnand V. Avati2009-07-160-0/+0
|\
| * Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/glusterAnand V. Avati2009-07-090-0/+0
| |\
* | | server: don't check for 'loc->parent' in entrylk and inodelk callsAmar Tumballi2009-07-161-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the lock operation on entry or inode is going to happen on only one inode, and it doesn't need dentry (with info on parent) for the lock operation to complete. Hence, in server_{inode,entry}lk() calls after server_loc_fill, we -should not- be checking for parent inode. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 112 (parallel deletion of files mounted by different clients on the same back-end hangs and/or does not completely delete) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=112
* | | change mount.glusterfs.in to work with non-bash shells too.Amar Tumballi2009-07-161-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | removed 'fuction ' prefix to function definitions which was very much /bin/bash specific. Thanks to Brent A. Nelson <brent@phys.ufl.edu> for the patch. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 139 (tiny glitch in mount.glusterfs in 2.0.4) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=139
* | | iostat to have more io detailsAmar Tumballi2009-07-161-9/+59
| | | | | | | | | | | | | | | | | | classified stat for write/read fops based on their block size. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement release and forget cbks.Raghavendra G2009-07-161-0/+49
| | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement qr_lk.Raghavendra G2009-07-161-0/+97
| | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement qr_ftruncate.Raghavendra G2009-07-161-0/+142
| | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement qr_fsync.Raghavendra G2009-07-161-0/+94
| | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement qr_finodelk.Raghavendra G2009-07-161-0/+100
| | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement qr_fentrylk.Raghavendra G2009-07-161-0/+100
| | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement qr_flush.Raghavendra G2009-07-161-0/+74
| | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement qr_fgetxattr.Raghavendra G2009-07-161-0/+101
| | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement qr_fsetxattr.Raghavendra G2009-07-161-0/+99
| | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement lc_fchmodRaghavendra G2009-07-161-0/+93
| | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement qr_fchownRaghavendra G2009-07-161-0/+95
| | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement qr_fstat.Raghavendra G2009-07-161-0/+94
| | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement qr_writevRaghavendra G2009-07-161-0/+118
| | | | | | | | | | | | | | | | | | - writev on any fd opened on a file invalidates the cache stored during lookup Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement qr_readvRaghavendra G2009-07-161-0/+525
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - pseudo-code of the algorithm is given below if (content is cached) { validate-contents (); if (content cached is valid) { stack unwind with cached content; } else { goto read-from-storage; } } else { goto read-from-storage; } return; read-from-storage: if (open is already done on fd) { stack-wind read; } else { add the current readv to list of operations waiting on completion of open; if (open on the fd is in transit) { do nothing; } else { stack-wind open; } } return; Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement qr_openRaghavendra G2009-07-162-0/+219
| | | | | | | | | | | | | | | | | | | | | | | | - The file is opened actually only if it is not cached already in lookup. This adds responsibility for fops operating on fds to make sure that a valid fd actually opened on a file is used to complete the fop. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: add qr_lookup.Raghavendra G2009-07-162-0/+147
| | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | Implementing quick-read translator.Raghavendra G2009-07-166-1/+186
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | lookup can fetch the entire file in xattr dictionary using the key "glusterfs.content". We set the maximum size of the file that can be fetched so in the xattr_req dictionary using the same key. If file-size is less than or equal to the value set in dictionary, the content is stored in the dictionary using same key in lookup_cbk. For small files, we can do an optimization wherein we do not really send the calls open, read and close to the storage translators. Instead there can be an xlator which fakes open, read and close calls. For reads, it sends the data it has cached during lookup and hence saving the time for open, read and close calls to reach storage translators (this time can be significant if calls have to go through network to reach storage translator). Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | Return stat from read subvolume in dir-write ops.Vikas Gorur2009-07-162-52/+83
| | | | | | | | | | | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 138 (create family calls do not return stat buf from read child) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=138
* | | Return stat info from read-child in all the inode-write opsVikas Gorur2009-07-162-18/+205
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also modifies the inode-write ops to wait for the call to read-child to return (whether success or failure) before unwinding. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 125 (stat information not returned from the same subvolume always) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=125
* | | add strict validatation of GF_OPTION_TYPE_PATH option type.Amar Tumballi2009-07-161-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure that users don't provide "../" in the path value in volume file, which should be considered security issue. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 141 (GF_OPTION_TYPE_PATH should check for presence of ".." in path) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=141
* | | fuse-bridge: Export user.glusterfs-booster-mount xattrShehjar Tikoo2009-07-161-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This needs to be exported in order to have the booster Mount Point Bypass technique work through libglusterfsclient. Booster uses the mount point to register with libglusterfsclient as a VMP. Subsequently, all file operations on the mounted GlusterFS mount point get redirected to libglusterfsclient. This fixes bug 136. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 136 (booster does not redirect ops on GlusterFS mount point into libglusterfsclient) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=136
* | | break inode_path if the length of the path crosses PATH_MAXAmar Tumballi2009-07-161-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a given search for path can't exceed the length of PATH_MAX in any case. Hence, its best to make sure by adding a check inside the for loop of inode_path, so that it won't enter an infinite loop. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 134 (infinite loop in inode_path ()) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=134
* | | cleanup 'ctx' from inode and fdAmar Tumballi2009-07-164-70/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Removing unused 'dict_t *ctx' from both inode and fd structures. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 128 (cleanup unwanted ctx dictionary in 'inode' and 'fd' structures.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=128
* | | ib-verbs: don't append ioq_entry to pending_list if first attempt of writing ↵Raghavendra G2009-07-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to network fails * fix to bug #101 - When a buffer bigger than ib-verbs-work-request-send-size was attempted to write to network, ib-verbs returns ENOTCONN. Neverthless, the ioq_entry corresponding to the write was appended to the pending lists of ioq_entries waiting to be written to network. This resulted in double free of header, once in protocol_client_xfer and again during cleanup of transport. The transport cleanup happened due to the timeouts of subsequent operations, since ioq_entry corresponding to writev was blocking any other operations from reaching server. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 101 (ib-verbs config crashing while dd'ing with a big mtu size) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=101