summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* glusterd rebalance: ignore 'selinux' xattrsv3.2.5qa1Amar Tumballi2011-10-171-0/+8
| | | | | | | | Change-Id: I145c12f529459f5c10ba1b8a28cb64ac07d2d2a9 BUG: 3721 Reviewed-on: http://review.gluster.com/605 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* build: Change dependency of rsync version for geo-replicationVijay Bellur2011-10-171-1/+1
| | | | | | | | Change-Id: I20d972e4930e65c4468d5da0ca75d60d2806bfa3 BUG: 2744 Reviewed-on: http://review.gluster.com/590 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Pranith Kumar Karampuri <pranithk@gluster.com>
* cluster/afr: Handle lookups when self-heal is offPranith Kumar K2011-10-179-590/+983
| | | | | | | | Change-Id: Ibc23fef417bcf613850e03dc4dadcc88f89e2b6f BUG: 2586 Reviewed-on: http://review.gluster.com/59 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* cli: "profile info" output improvementsKaushal M2011-10-171-7/+14
| | | | | | | | | | Some changes to profile info output. Change-Id: I2e7a5c088fbb29be7df28de79d9817c5a492d775 BUG: 3028 Reviewed-on: http://review.gluster.com/586 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* mgmt/glusterd: send the duplicate brick info to the cliRaghavendra Bhat2011-10-172-4/+8
| | | | | | | | | | | | suppose one gives create volume from a peer whose bricks are hostname:/a/b hostname:/a/b/c, then send that error information to the cli. Change-Id: Ic2149647f753fcf9218e468f13c52d0fc013a5d3 BUG: 2803 Reviewed-on: http://review.gluster.com/582 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* makes 'volume top' exit with exit status '0' upon successM S Vishwanath Bhat2011-10-161-1/+1
| | | | | | | | | | | volume top exit status was not zero even when command was successful Change-Id: I12761cb6f00ad5c851bfee7cf0aaf0b92dfb94f4 BUG: 2882 testcase: run any valid 'volume top' command and check for exit status Reviewed-on: http://review.gluster.com/587 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* glusterd: Should not cleanup peerinfo too soon.Krishnan Parthasarathi2011-10-162-4/+4
| | | | | | | | | | | | | | friend_remove_cbk cleans up peerinfo and the unrefs the associated rpc_clnt obj. When the cbk is run inside call_bail or saved_frames_unwind, we might end up destroying the rpc_clnt and associated saved_frames_pool while we are still using saved_frames to iterate through the frames. Change-Id: I9c43797cb35104d35b011c26d773a0b375248f2d BUG: 3511 Reviewed-on: http://review.gluster.com/513 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amar@gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* libglusterfs/syncop: do not rely on synctask set in makecontextRaghavendra Bhat2011-10-101-1/+7
| | | | | | | | | | | | | Across glibc implementations, interpretation of argc/argv passed to makecontext() is different. This patch does away with dependence on such arguments passed to makecontext(). Instead,synctask reference is retrieved from pthread_getspecific(). Change-Id: Ib00924ddb115877c643818e22afa8941eceaff76 BUG: 3636 Reviewed-on: http://review.gluster.com/571 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* nfs: size_t is an unsigned type. Changing it to ssize_t for "writelen" ↵krishna2011-10-102-12/+16
| | | | | | | | | | variable. Also propogate error to the calling functions. Change-Id: If8ba73ac57bc235a28c1e1cdc7a5e11947e7a52f BUG: 3526 Reviewed-on: http://review.gluster.com/400 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Shehjar Tikoo <shehjart@gluster.com>
* libglusterfs/iobuf: increase the iobref's iobuf array sizeAmar Tumballi2011-10-103-6/+8
| | | | | | | | | | | | earlier it was hardcoded to 8, now increased the size to 16. also return the exact error code in client_submit_vec_request(), so there will be no missing frames in case of errors. Change-Id: I82a6ee681a543b673a7cf1a0b9c5ade2a7175ebe BUG: 3679 Reviewed-on: http://review.gluster.com/570 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* glusterd rebalance: remove stale temporary file if migration failsAmar Tumballi2011-10-101-0/+5
| | | | | | | | | Change-Id: Ie13b0f2748b15c0359b7868460d4bc65ec05a217 BUG: 3576 Reviewed-on: http://review.gluster.com/552 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Jeff Darcy <jdarcy@redhat.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* Stripe: Prevent dir gfid mismatch and ENOTEMPTY errorsshishir gowda2011-10-102-103/+334
| | | | | | | | | | | | | | | | | | | gfid mismatch issue- rmdir- first remove from non first child (FC), and then last from FC. If one fails, FC entry is not removed and op is failed. mkdir- first create dir from FC, followed by other childs. If FC is success then, we succeed, banking on entry self heal ENOTEMPTY issue- unlink: remove from non FC and then on success remove from FC. If non FC remove fails, fail unlink create- Create first on FC, and on success create on non FC. Change-Id: I89cb6e069762a1d45669335330e9381c23de3197 BUG: 3663 Reviewed-on: http://review.gluster.com/566 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amar@gluster.com>
* cluster/dht: selfheal as rootshishir gowda2011-10-102-0/+2
| | | | | | | | Change-Id: I8a0a91c2ddb7c487d06a9d5aeaed593b5e84abef BUG: 2591 Reviewed-on: http://review.gluster.com/569 Reviewed-by: Amar Tumballi <amar@gluster.com> Tested-by: Gluster Build System <jenkins@build.gluster.com>
* glusterfsd: Fix a typo in log message.Sachidananda Urs2011-10-071-1/+1
| | | | | | | | Change-Id: I95271def60a1977777f0b5576ae5fbbb59352778 BUG: 2346 Reviewed-on: http://review.gluster.com/567 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* smoke.sh: Avoid running extended attribute tests with dbenchVijay Bellur2011-10-071-1/+1
| | | | | | | | Change-Id: Ibcc2161bbe109a3a6b435c0a56321379c7247e44 BUG: 3234 Reviewed-on: http://review.gluster.com/565 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Raghavendra Bhat <raghavendrabhat@gluster.com>
* performance/io-cache: move mem-pool initialisation to init.Raghavendra G2011-10-011-26/+13
| | | | | | | | | | | | - mem-pool is global structure which is stored in ioc-inode-table and hence can be initialised in init. Change-Id: I215118d61e17805c9f3e78cb8e8297e17cc1117d BUG: 3608 Reviewed-on: http://review.gluster.com/484 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amar@gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* build: Solaris build fixesKaushik BV2011-10-014-4/+29
| | | | | | | | Change-Id: I977903f26dbb2c8d1632b3a1c52bd8af4ce8652f BUG: 3446 Reviewed-on: http://review.gluster.com/502 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amar@gluster.com>
* gnfs/server: allow 255-char file namesRajesh Amaravathi2011-10-011-2/+2
| | | | | | | | | | | | | * Posix requires 255 character filenames(NAME_MAX), so buffer to store a filename should be 256(+1 for terminating '\0' character). Change-Id: Id06ffa0e2d90a5950198cda3e4146ff10d25308b BUG: 3572 Reviewed-on: http://review.gluster.com/500 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amar@gluster.com> Reviewed-by: Krishna Srinivas <krishna@gluster.com>
* Kill glusterfsd along with glusterd processv3.2.4Lakshmipathi2011-09-301-2/+2
| | | | | | | | Change-Id: Ib1c3c6f6981b07edf64aae50acad859593f36435 BUG: 3546 Reviewed-on: http://review.gluster.com/546 Reviewed-by: Vijay Bellur <vijay@gluster.com> Tested-by: Gluster Build System <jenkins@build.gluster.com>
* features/marker-quota: Return error when inode-contribution not present in ↵v3.2.4qa5Junaid2011-09-301-9/+16
| | | | | | | | | | | | inode_ctx. Also, create the inode_contribution node even before checking for dirty and xattr not present in mq_inspect_directory_xattr function. Change-Id: Ie5b6e6ba8d5abcfc6aeb9b192720ac10aac1319e BUG: 3624 Reviewed-on: http://review.gluster.com/538 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Raghavendra G <raghavendra@gluster.com>
* stripe self_heal: Prevent call to spurious STACK_DESTROY.shishir gowda2011-09-281-0/+4
| | | | | | | | | | | this will be destroyed in cbk. Porting commit d7642fb9bc13bb9c2da35bd8e80c311d5fc5096c from master. Change-Id: I46ea53433e782af48f06dda1ab1390b900966e8a BUG: 3505 Reviewed-on: http://review.gluster.com/524 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amar@gluster.com>
* mgmt/glusterd: Ignore error when glusterd_op_get_ctx fails on other glusterd.v3.2.4qa4Junaid2011-09-231-1/+1
| | | | | | | | Change-Id: I6bc8caf10b0088e403361697f09c071c4cd4fdc9 BUG: 3078 Reviewed-on: http://review.gluster.com/495 Reviewed-by: Vijay Bellur <vijay@gluster.com> Tested-by: Gluster Build System <jenkins@build.gluster.com>
* Revert "cluster/afr: eager locking of FD writes"v3.2.4qa3Vijay Bellur2011-09-226-173/+61
| | | | | | | | | This reverts commit 81456ec2dfb312ae60c5c4e6f960a3cbf8aaaa4c. Change-Id: Id03335117f5137f5d09781850bf4fba6eca0f73d Reviewed-on: http://review.gluster.com/492 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* glusterd: do preparative gsyncd invocations with proper loggingCsaba Henk2011-09-221-36/+22
| | | | | | | | | Change-Id: I28de4cce140faf1b35ecdc5cbd408f21c9926341 BUG: 3231 Reviewed-on: http://review.gluster.com/167 Reviewed-by: Amar Tumballi <amar@gluster.com> Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* NFS : Posix compliance fixes.Gaurav2011-09-212-5/+8
| | | | | | | | | Change-Id: I3687fd16bcc0ddc8a352efb9a0b410f54bec6e74 BUG: 1337 Reviewed-on: http://review.gluster.com/482 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amar@gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* build : rpm spec file changesLakshmipathi2011-09-211-12/+16
| | | | | | | | | | | | | | | | | | | Thanks to Scott Zahn <Scott@zahna.com> - Fixed spec file to add the correct ldconfig path addition for i386 and x86_64.(BUG:2279) Persson <Persson@katamail.com> - Fixed without_georeplication macro (BUG:3541) JoeJulian <Joe@julianfamily.org> - Minor rpm cleanups.(BUG:3546) Patch create the library references for both 64bit and 32bit rpms Change-Id: Ia281fa0d3d8b32ff19b74f379cda7ca9315a4beb BUG: 2279 Reviewed-on: http://review.gluster.com/470 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amar@gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* rpc: Need to keep ref when handling cbk in call_bail.Krishnan Parthasarathi2011-09-201-0/+5
| | | | | | | | Change-Id: Ic944599cfa2696a0ae77105185d49fb510ce6fec BUG: 3511 Reviewed-on: http://review.gluster.com/396 Reviewed-by: Vijay Bellur <vijay@gluster.com> Tested-by: Gluster Build System <jenkins@build.gluster.com>
* 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>
* rpc:memcpy data of right size to auth paramsVijay Bellur2011-09-191-1/+1
| | | | | | | | Change-Id: I6999e0a1463ee3475f7607990337326b3f008538 BUG: 3587 Reviewed-on: http://review.gluster.com/463 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amar@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>
* cli: check wordcount to validate volume set helpKaushik BV2011-09-181-2/+2
| | | | | | | | | Change-Id: I6fedb5b2db4b137b5da5d7b8ef5ce793e1be207a BUG: 3543 Reviewed-on: http://review.gluster.com/434 Reviewed-by: Amar Tumballi <amar@gluster.com> Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* glusterfsd: log the package version just after log initAmar Tumballi2011-09-151-0/+5
| | | | | | | | | | | | helps getting output of 'glusterfs --version' from the users while debugging any issues/bugs. Change-Id: I4f15aca143c1e403c70409378afc9ed7a678b286 BUG: 2346 Reviewed-on: http://review.gluster.com/416 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Shishir Gowda <shishirng@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>
* Whitespace cleanup and change license to GPLv3+ in rpm specVijay Bellur2011-09-111-15/+15
| | | | | | | | Change-Id: If9af6ae0c00606dd0859363d42dacb2f365201af BUG: 3348 Reviewed-on: http://review.gluster.com/374 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amar@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-092-18/+50
| | | | | | | | | 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>
* rdma: fix excessive logsAmar Tumballi2011-09-072-3/+5
| | | | | | | | | | most of this resulted in taking a 'ref' on NULL iobuf. Change-Id: I14b3eedc93c65d8112d279f2bc72a1daec8b33b6 BUG: 2346 Reviewed-on: http://review.gluster.com/372 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* afr/stripe: collect pathinfo xattr from all childsVenky Shankar2011-08-2410-19/+460
| | | | | | | | 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>