summaryrefslogtreecommitdiffstats
path: root/xlators
Commit message (Collapse)AuthorAgeFilesLines
* storage/posix: Filter custom getxattrs in lookupv3.2.4qa2Pranith Kumar K2011-09-201-1/+34
| | | | | | | | Change-Id: Icb67cd739410071a07a9511e28c075fe8e9b9eaf BUG: 3470 Reviewed-on: http://review.gluster.com/326 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Raghavendra G <raghavendra@gluster.com>
* glusterfs protocol: handshake to log the version of the peerAmar Tumballi2011-09-203-5/+23
| | | | | | | | | | | | | | | | | * As RPC program's name is just used for logging, we now have 'PACKAGE_VERSION' part of the string, which gets logged in client side. * From client, we send the PACKAGE_VERSION in handshake dictionary, which gets logged on serverside handshake. The change doesn't break any compatibility between client or server as it would only enhance the logging part of handshake. Change-Id: Ie7f498af2f5d3f97be37c8d982061cb6021883ce BUG: 3589 Reviewed-on: http://review.gluster.com/468 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* features/marker: Use appropriate loc struct to do removexattr on newpath ↵Raghavendra G2011-09-201-1/+13
| | | | | | | | | | after rename. Change-Id: Idb31e845bc876f46b476d8fa769d67d8db89e4a1 BUG: 3493 Reviewed-on: http://review.gluster.com/389 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* features/quota: explicitly create xattrs in marker_create_cbkRaghavendra G2011-09-192-3/+10
| | | | | | | | | | | | | | - the earlier approach of creating quota related xattrs through side-effect of updating size and contribution values won't work, since when no contribution xattr is present, the updation process treats contribution value as zero and hence will be equal to size of freshly created files Change-Id: If9b2063b1ac3a4cf50d3fe2c81e907bc8eccb677 BUG: 3531 Reviewed-on: http://review.gluster.com/383 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Mohammed Junaid <junaid@gluster.com>
* features/quota: implement mknod fop.Raghavendra G2011-09-191-0/+142
| | | | | | | | Change-Id: If8f2a0bb635160ee78f35787ee9f8a4db87ae8ac BUG: 3531 Reviewed-on: http://review.gluster.com/382 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Mohammed Junaid <junaid@gluster.com>
* performance/quick-read: fix memory corruption.v3.2.4qa1Raghavendra G2011-09-191-4/+0
| | | | | | | | | | | - macro QR_STACK_UNWIND destroys the stub present in local and hence no need of explicitly calling call_stub_destroy on it. Change-Id: Ib81c9a0d382765e783722b14fdbd7877086b1bec BUG: 3562 Reviewed-on: http://review.gluster.com/440 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* nfs-rpc: Use correct variable for volume-specific insecure ports checkShehjar Tikoo2011-09-121-1/+1
| | | | | | | | Change-Id: Ia53f64e923babdd3af2d82b13350c97fa25fac2d BUG: 3515 Reviewed-on: http://review.gluster.com/355 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Shehjar Tikoo <shehjart@gluster.com>
* features/marker-quota: Perform xattr related operations with root ↵Junaid2011-09-122-6/+39
| | | | | | | | | | permissions in rename fop. Change-Id: Id9ac1ecdd9753377c9eb24464f51dcbdc0cd2821 BUG: 3194 Reviewed-on: http://review.gluster.com/366 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* features/marker-quota: Prefix the function names with mq (marker-quota).Junaid2011-09-125-310/+310
| | | | | | | | | | This is to fix to bug marker translator and quota translator cannot co-exist in same process. Change-Id: Ie0419e1a66d300e163d27b21441ad8d8139b6097 BUG: 30203020 Reviewed-on: http://review.gluster.com/393 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* glusterd: Leave existing 'unreadable' rbstate alone.Krishnan Parthasarathi2011-09-111-13/+23
| | | | | | | | Change-Id: I64f043e0bafd8f61936f52ddf9009a81abef3c4d BUG: 3453 Reviewed-on: http://review.gluster.com/290 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* memleak fixes for markerRaghavendra Bhat2011-09-111-3/+5
| | | | | | | | | Change-Id: I33623f874fbf3a3c491322877ed54e99d3cfc623 BUG: 2784 Reviewed-on: http://review.gluster.com/298 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amar@gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* Fix misleading 'quota remove' output.Junaid2011-09-091-15/+39
| | | | | | | | | Change-Id: I195d3bf81e55886395e98f3eda67127e47014c11 BUG: 2856 Signed-off-by: Junaid <junaid@gluster.com> Reviewed-on: http://review.gluster.com/340 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* Save the mode flags set by the application when ACLs are in usePavan T C2011-09-081-1/+2
| | | | | | | | | | | | | | | | | While inheriting the ACLs from a directory that has default ACLs, make sure that the mode flags set by the application are saved. It is required to inherit only the Read, Write and Execute permissions while leaving the others viz. setuid, setgid and sticky bit untouched hence honouring the requests made by the application during create operations (mknod, mkdir et al). For a description of the problem, root cause and evaluation, refer: http://bugs.gluster.com/show_bug.cgi?id=3522 Change-Id: I4d3758389327c1aa78a0ebde0079c855503a3dd7 BUG: 3522 Reviewed-on: http://review.gluster.com/379 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* cluster/afr: eager locking of FD writesAnand Avati2011-09-086-61/+173
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is a change in the way write transactions hold a lock which optimizes the case of sequential writes from a single writer. Lock phase of a transaction has two sub-phases. First is an attempt to acquire locks in parallel by broadcasting non-blocking lock requests. If lock aquistion fails on any server, then the held locks are unlocked and revert to a blocking locked mode sequentially on one server after another. The change in this patch is to make the initial broadcasting lock request attempt to acquire lock on the entire file. If this fails, we revert back to the sequential "regional" blocking lock as before. In the case where such an "eager" lock is granted in the non-blocking phase, it gives rise to an opportunity for optimization. i.e, if the next write transaction on the same FD arrives before the unlock phase of the first transaction, it "takes over" the full file lock. Similarly if yet another transaction arrives before the unlock phase of the "optimized" transaction, that in turn "takes over" the lock as well. The actual unlock now happens at the end of the last "optimzed" transaction. Any operation which arrives before the unlock phase of the previous transaction is a potential candidate to become an "optimized" transaction. In cases where the previous transaction had aquired lock as a "regional" blocking lock, and the next transaction comes in before its unlock phase, then it would not be an "optimized" transaction. Implied assumption ------------------ Since two or more transactions can now operate within the same large lock, there is a possibility that overlapping transactions can arrive at oppoosite orders on the servers. However in the larger picture this is not possible as write-behind already ensures that no two overlapping writes on an inode are in transit at the same time. Overlapping writes across clients are not a problem as they compete at locks anyways. Theoretical benefits and potential harms ---------------------------------------- In case of a single writer: The benefits are large for sequential writes. In the best case the entire file write can happen with just one lock and unlock per server, provided writes are coming in fast enough and getting pipelined by write-behind soon enough (which is usually the case). If the writes are not coming in fast enough, then the optimization "kicks in" for only those subsets of writes which are close enough to get "piggybacked". For random writes the benefits are the same as well. In any case the overall performance is better than or equal to the performance without this optimization for a single writer. In case of multiple writers: When multiple writers are not writing concurrently, there is no negative performance impact. When multiple writers are writing concurrently to the same region, there is no negative impact either, as they were previously getting arbitrated at the locks translator too. In the case of multiple writers writing to different regions concurrently, there will be an increased number of "failovers" from failed parallel non-blocking to sequential blocking regional locks. This above "worst case" has a simple workaround that as soon as we detect > 1 open-fd-count in lookup xattr, we can disable this optimization on those fds. Beneficial side-effects ----------------------- There is another similar optimization in AFR for changelogs which goes by the name of "changelog-piggybacking". That works in a similar way where pending flags get 'taken over' or 'piggybacked' by the next transaction if its 'pre-op' phase kicks in before the 'post-op' phase of the previous transaction. It has been observed that this changelog-piggybacking optimization gives a saving of about ~55% savings of xattr calls hitting the wire, measured across various types of network interfaces. The side effect of this eager-lock optimization is that it gives an almost 100% saving of xattr calls by making the optimistic-changelog work much more efficiently as it gives a wider overlap of the xattr phases of two consecutive transactions. Change-Id: I41c02eb3b64c14c68ef66a344610ec3f024cd59d BUG: 3409 Reviewed-on: http://review.gluster.com/243 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* mount/nfs: Gluster nfs crashes with subdirectory mountRajesh Amaravathi2011-09-071-1/+4
| | | | | | | | | | | | | Glusterfs used to crash trying to dereference a NULL pointer. Also, in mnt3_resolve_export_subdir, volume name was prefixed to sub directory exported, resulting in mount fail of sub directory. Fixed both issues. Change-Id: I746f0c244b4cbf03033d73ac3e40518762d76385 BUG: 3481 Reviewed-on: http://review.gluster.com/346 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Shehjar Tikoo <shehjart@gluster.com>
* nfs3: Resolve entry vs. hash conflict at same dir depthShehjar Tikoo2011-09-072-15/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Intro Note ========== The current code in hard fh resolution takes the first-match approach, i.e. which ever dirent either matches the hash or matches the gfid first is the one chosen as the result for the next step of fh resolution. In the latter case, i.e., dirent matches the gfid, we the next step is to conclude the fh resolution by returning the entry whose gfid matched. In the former, i.e., the hash matches the dirent, we choose the hash-matching dirent as the next directory to descend into, for searching the file to be operated upon. Problem ======= When performing hard fh resolution, there can be a situation where: o the hash of the primary entry,i.e. the entry we're looking for and the hash of another sibling directory, match. Note the use of "sibling", meaning both the primary entry and the hash matching one are in the same directory, i.e., their filehandle.hashcount will be same. o the sibling directory is encountered first during the dir search. Because of the current code described in "Intro", we'll end up descending into the sibling directory even though the correct behaviour is to ignore this and wait till we encounter the primary entry in the same parent directory. Once we end up descending into this sibling directory, the directory depth validation check fails. The check fails because it notices that the resolution is attempting to open a directory that is deeper in the fs tree than the file we're looking for. When this check fails, we return an ESTALE. So basically, a false-positive results in an estale to Specsfs. This is not a theoretical situation. Me and Avati saw this on specsfs test where sfs created terabytes-sized file system for its tests. The number of files was so huge in a single directory that the hashes of two entries ended up colliding. Change-Id: I78d8756252330201e165d788a29277b4bce0df90 BUG: 3510 Reviewed-on: http://review.gluster.com/358 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Shehjar Tikoo <shehjart@gluster.com>
* afr/stripe: collect pathinfo xattr from all childsVenky Shankar2011-08-248-19/+362
| | | | | | | | Change-Id: Iec8b609e66ef21f4fdd6ee2ff3060f0b71d47ca0 BUG: 3046 Reviewed-on: http://review.gluster.com/237 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amar@gluster.com>
* performance/stat-prefetch: fix memory leakRaghavendra G2011-08-241-3/+14
| | | | | | | | | BUG: 3467 Change-Id: I9b7e2cc5ed824544a8c6549bf99f9e013fd70e56 Reviewed-on: http://review.gluster.com/309 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amar@gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* features/locks: free the string allocated by inode_pathRaghavendra Bhat2011-08-231-3/+8
| | | | | | | | Change-Id: I352b155c065b10590a50a7195de2da40523f5710 BUG: 3468 Reviewed-on: http://review.gluster.com/303 Reviewed-by: Amar Tumballi <amar@gluster.com> Tested-by: Gluster Build System <jenkins@build.gluster.com>
* features/marker-quota: Fix invalid reads in readdir_cbk.Junaid2011-08-221-8/+24
| | | | | | | | Change-Id: I851de443677c02fe73c56a55a58e8b2045bff142 BUG: 3389 Reviewed-on: http://review.gluster.com/291 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amar@gluster.com>
* glusterd: persistent state restore needs to be backward compatible.v3.2.3qa5Krishnan Parthasarathi2011-08-211-8/+12
| | | | | | | | Change-Id: I6c774f638bd8ebd3f3c7c868be6416c9b37897d0 BUG: 3453 Reviewed-on: http://review.gluster.com/282 Reviewed-by: Vijay Bellur <vijay@gluster.com> Tested-by: Gluster Build System <jenkins@build.gluster.com>
* features/marker: avoid race conditions in marker-quota and avoid memory ↵v3.2.3qa4Raghavendra Bhat2011-08-202-50/+199
| | | | | | | | | | corruption Change-Id: I9e69c7fcf47d611ea960f9969bbc3fb96d93d58e BUG: 3389 Reviewed-on: http://review.gluster.com/278 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* glusterd: replace-brick status was not 'shared' with peer.Krishnan Parthasarathi2011-08-203-71/+288
| | | | | | | | Change-Id: Ia2d89fd919b077232a37debc2aebe1bc72150856 BUG: 3432 Reviewed-on: http://review.gluster.com/264 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* xlators/nfs: Fix a typo in option descriptionVijay Bellur2011-08-201-3/+3
| | | | | | | | Change-Id: Ibb888357b87603544f360d181637138261fb3b71 BUG: 3445 Reviewed-on: http://review.gluster.com/275 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* features/marker: send the errno sent by posix to the upper xlators, instead ↵Raghavendra Bhat2011-08-201-1/+2
| | | | | | | | | | | | | | | | | of ENOMEM Marker sends stat first, before sending the unlink. By the time stat reaches posix if the file is deleted by another client, then stat fails with op_errno set to ENOENT. But in the corresponding call back function of marker (i.e marker_unlink_stat_cbk), we check for (op_ret < 0) and if so we unwind by sending ENOMEM as the error to the above xlators which results in the applications (such as rm -rf) also getting ENOMEM. Change-Id: Idb63215a6c46f3acfe4c0fa7cb2dd97b0170441b BUG: 3429 Reviewed-on: http://review.gluster.com/253 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* features/marker: Correct behavior of local_ref/unrefVijay Bellur2011-08-203-7/+4
| | | | | | | | Change-Id: I8266754d4b53b525b13fed2383cf95d77bab47ba BUG: 3429 Reviewed-on: http://review.gluster.com/252 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* mgmt/glusterd: Fix the string to be parsed by the nfs option handler of ↵Kaushik BV2011-08-191-2/+2
| | | | | | | | | | volgen-engine Change-Id: I9e86b472500b59fb220c7589fd00fa9fffdca9c5 BUG: 3414 Reviewed-on: http://review.gluster.com/272 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* mgmt/glusterd: call the nfs option handler at the right placev3.2.3qa3Kaushik BV2011-08-181-14/+26
| | | | | | | | Change-Id: If2b854ede47fa27c0134e6abaccb62dbe2ea8b26 BUG: 3414 Reviewed-on: http://review.gluster.com/255 Reviewed-by: Vijay Bellur <vijay@gluster.com> Tested-by: Gluster Build System <jenkins@build.gluster.com>
* mgmt/Glusterd: Implementation volume set help/help-xmlKaushik BV2011-08-1818-136/+941
| | | | | | | Change-Id: I0c54fd1c15550e5e5551e95ed32adb14d8029fab Reviewed-on: http://review.gluster.com/238 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* cluster/afr: Fix endian conversion for fxattropPranith Kumar K2011-08-181-1/+1
| | | | | | | | Change-Id: Ie67c4da49876555c3162909e474b9089a85f99a6 BUG: 3182 Reviewed-on: http://review.gluster.com/256 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* glusterd: fix for volume stop causing inconsistent volume statusKaushal M2011-08-171-1/+4
| | | | | | | | | | | | | 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: Ibf88b61dc66be4ddff9050a0359636675de558a2 BUG: 3147 Reviewed-on: http://review.gluster.com/246 Reviewed-by: Vijay Bellur <vijay@gluster.com> Tested-by: Gluster Build System <jenkins@build.gluster.com>
* features/marker: do not unref the marker local twice to avoid memory corruptionRaghavendra Bhat2011-08-172-7/+16
| | | | | | | | Change-Id: I71bc8a477155cff62c3218fee285a22a44aa54ba BUG: 3385 Reviewed-on: http://review.gluster.com/241 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* cluster/stripe: send the xattr keys with create/mknod itself.shishir gowda2011-08-101-189/+177
| | | | | | | | | | | | so stripe is more acl friendly Porting patch ded0a9a2a0a9024def7a4b199ac3bbfa5d66485a from master Change-Id: I0c7d8fb90714a4d92620646d940a58be58a3cf66 BUG: 3368 Signed-off-by: Amar Tumballi <amar@gluster.com> Reviewed-on: http://review.gluster.com/202 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/207 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* Change Copyright current yearPranith Kumar K2011-08-10235-235/+235
| | | | | | | | Change-Id: Id1f1a91cf15d933d5621a0073ddaebe02df0f159 BUG: 3348 Reviewed-on: http://review.gluster.com/198 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* fuse-resolve: prevent linking of inodes of different inode-tableAmar Tumballi2011-08-101-25/+31
| | | | | | | | | | | | | | | | | | | 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/194 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Shishir Gowda <shishirng@gluster.com> Reviewed-by: Raghavendra Bhat <raghavendrabhat@gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* LICENSE: s/GNU Affero General Public/GNU General Public/Pranith Kumar K2011-08-06233-697/+697
| | | | | | | | Change-Id: Ibf5f45431d7a55b70d7304649af652d6f25bb688 BUG: 3348 Reviewed-on: http://review.gluster.com/183 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/186 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* features/marker-quota: Performance improvement.Junaid2011-08-053-11/+122
| | | | | | | | | | | With this patch new transactions will not be triggered if an updation is already in progress on that inode. Change-Id: I6477444ac69071b73b509ae670c83f301bb19bce BUG: 2988 Reviewed-on: http://review.gluster.com/169 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Raghavendra G <raghavendra@gluster.com>
* Removes hardcoding of the transport type in replace-brick operations.Vishwanath S Bhat2011-08-043-21/+69
| | | | | | | | | | | Replace-brick didn't work in volume with rdma transport type. Change-Id: Ib4654bae8aa035050f7e4718c4d29174b7db74b3 BUG: 3092 Testcase: Replace-brick should succeed in volume with rdma transport type. Reviewed-on: http://review.gluster.com/133 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Krishnan Parthasarathi <kp@gluster.com>
* features/marker-quota: Remove unused variable volname.Junaid2011-08-032-6/+1
| | | | | | | Change-Id: Id0ad3b9c00ab86baec7311998194b777948a5869 Reviewed-on: http://review.gluster.com/153 Tested-by: Gluster Build System <jenkins@build.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/139 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* features/marker: log failures due to file not being presentRaghavendra G2011-08-031-33/+77
| | | | | | | | | | during quota updation transaction in DEBUG. Change-Id: I483caadbfd77d3830b1ea930a31eedddd0808fca BUG: 3143 Reviewed-on: http://review.gluster.com/42 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* DHT rename: Recreate linkfile after unlinkshishir gowda2011-08-033-143/+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. BUG: 2522 Change-Id: Ia880adda5a94351f30971576b4faa861fac4682d Reviewed-on: http://review.gluster.com/144 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: Id24627b5a59ef21a799b6a4da8cd063966cad3b9 BUG: 3309 Reviewed-on: http://review.gluster.com/146 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* storage/posix: handle dictionary being NULL in a functionAmar Tumballi2011-08-012-1/+4
| | | | | | | | Change-Id: Ib9cac6ed1635203802f089986f8acb1ce416265d BUG: 3215 Reviewed-on: http://review.gluster.com/97 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* IO-threads: Support for loading io-threads xlator on client sideshishir gowda2011-08-011-1/+5
| | | | | | | | | | | | New set option performance.client-io-threads added to enable/disable it. Default behavior is io-threads is off on client side Loaded only on fuse volume below io-stats. BUG: 3122 Change-Id: I28ddc6db9f26081d0ea5dd6cb895991d8ba29210 Reviewed-on: http://review.gluster.com/135 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* performance/io-cache: hold lock on ioc_inode whereever a page is being ↵Raghavendra G2011-07-294-846/+950
| | | | | | | | | | accessed/modified Change-Id: I77e94166d4ad7a9ac87127de840add7278992bf3 BUG: 2939 Reviewed-on: http://review.gluster.com/24 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* performance/quick-read: Handle unwinding of frame corresponding to read fop ↵Raghavendra G2011-07-291-115/+220
| | | | | | | | | | | | | | | | | | properly, while validating cache. - there was a possibility of double unwind in case of errors. - use a new frame to do open in fd-based fops. In case of errors, qr_resume_pending_ops will be called to resume all the fops waiting on open. Hence if we use frame corresponding to fop (without creating a new one), there is a possibility of frame being freed by the time open would've returned to quick-read. Change-Id: Ie4cc19907f9d6362860bdb984779c8f4cf822332 BUG: 3168 Signed-off-by: Raghavendra G <raghavendra@gluster.com> Reviewed-on: http://review.gluster.com/35 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* features/marker-quota: Perform removexattr with frame uid and gid set to root.Junaid2011-07-292-0/+23
| | | | | | | | Change-Id: Iabd8ff835c76d828e4af50ce4941d2ff86797eee BUG: 3194 Reviewed-on: http://review.gluster.com/99 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Raghavendra G <raghavendra@gluster.com>