GitHub PushEvent at 2014-05-14 10:02:11
Repository: glusterfs
Actor: zhanghuan
Payload: {"shas":[["f863a9b69ecc9513b74cb07cb199f0c0ff38104e","7bda0c0ee7f47171cc808e9e60292cbc5d8140dd@redhat.com","build: do not create versioned <xlator>.so files\n\nThere has been a misspelled option in the Makefile.am files. The option\nis called -avoid-version, and not -avoidversion.\n\nIt is not trivial to provide a test-case for this. One way would be to\ncheck generated RPMs with a command like this (output should be empty):\n\n  $ rpm -qlp *.rpm | grep -E '/xlator/.+.so.0'\n\nChange-Id: Ie1519455c9f9366feee0d3cafcc384b9eff57776\nReviewed-on-master: http://review.gluster.org/7299\nBUG: 1078365\nSigned-off-by: Niels de Vos <ndevos@redhat.com>\nReviewed-on: http://review.gluster.org/7301\nReviewed-by: Lalatendu Mohanty <lmohanty@redhat.com>\nTested-by: Gluster Build System <jenkins@build.gluster.com>\nReviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>","Niels de Vos",false],["b3fd7004a4a579c64ed29ee7eeb7e0fa57a3591f","5fed6b1878bba2b6032895495b62ed122c85372d@datalab.es","storage/posix: do not dereference gfid symlinks before posix_handle_mkdir_hashes()\n\nWhenever a new directory is created, its corresponding gfid file must\nalso be created. This was done first calling MAKE_HANDLE_PATH() to get\nthe path of the gfid file, then calling posix_handle_mkdir_hashes() to\ncreate the parent directories of the gfid, and finally creating the\nsoft-link.\n\nIn normal circumstances, the gfid we want to create won't exist and\nMAKE_HANDLE_PATH() will return a simple path to the new gfid. However if\nthe volume is damaged and a self-heal is running, it is possible that we\ntry to create an already existing gfid. In this case, MAKE_HANDLE_PATH()\nwill return a path to the directory instead of the path to the gfid.\n\nTo solve this problem, every time a path to a gfid is needed, a call to\nMAKE_HANDLE_ABSPATH() is made instead of the call to MAKE_HANDLE_PATH().\n\nBUG: 859581\nChange-Id: I84405bf04562e647fc02445f45358e9451f9b479\nSigned-off-by: Xavier Hernandez <xhernandez@datalab.es>\nReviewed-on: http://review.gluster.org/6736\nTested-by: Gluster Build System <jenkins@build.gluster.com>\nReviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>\nReviewed-by: Raghavendra Bhat <raghavendra@redhat.com>\nReviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>\nReviewed-by: Niels de Vos <ndevos@redhat.com>","Xavier Hernandez",false],["b50edddcddc6ef943a36e0535e3bc85d714867ef","39f15b5c9bcef5af1fee3013c5b9b9905213699e@redhat.com","storage/posix:  lgetxattr called with invalid keys on the bricks\n\nMore invalid keys have crept in since this was fixed. We need a better\nstrategy for avoiding this than the current noticed-in-an-strace..\n\nCleaned tabs while I'm at it.\n\nChange-Id: I0d5d3dd925cc626d06768b022ea0a572a9ea7e06\nBUG: 765202\nSigned-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>\nReviewed-on: http://review.gluster.org/7004\nTested-by: Gluster Build System <jenkins@build.gluster.com>\nReviewed-by: Niels de Vos <ndevos@redhat.com>","Kaleb S. KEITHLEY",false],["45a0322066513259e61c7a4b1b1ed1a0bd3a0827","3d98f31eab06971051372b88e77259b2119ee764@redhat.com","rpcsvc: Ignore INODELK/ENTRYLK/LK for throttling\n\nProblem:\nWhen iozone is in progress, number of blocking inodelks sometimes becomes greater\nthan the threshold number of rpc requests allowed for that client\n(RPCSVC_DEFAULT_OUTSTANDING_RPC_LIMIT). Subsequent requests from that client\nwill not be read until all the outstanding requests are processed and replied\nto. But because no more requests are read from that client, unlocks on the\nalready granted locks will never come thus the number of outstanding requests\nwould never come down. This leads to a ping-timeout on the client.\n\nFix:\nDo not account INODELK/ENTRYLK/LK for throttling\n\nBUG: 1089470\nChange-Id: I9cc2c259d2462159cea913d95f98a565acb8e0c0\nSigned-off-by: Pranith Kumar K <pkarampu@redhat.com>\nReviewed-on: http://review.gluster.org/7570\nTested-by: Gluster Build System <jenkins@build.gluster.com>\nReviewed-by: Krutika Dhananjay <kdhananj@redhat.com>\nReviewed-by: Niels de Vos <ndevos@redhat.com>","Pranith Kumar K",false],["d8014f53c22a7da2d7b38e7d3215aa83e3e51d0d","652d1e34e1876dd82d643021ce9a3641bdac3966@redhat.com","features/locks: Remove stale entrylk objects from 'blocked_locks' list\n\n        Backport of http://review.gluster.org/7560\n\n* In the event of a DISCONNECT from a client, as part of cleanup,\n  entrylk objects are not removed from the blocked_locks list before\n  being unref'd and freed, causing the brick process to crash at\n  some point when the (now) stale object is accessed again in the list.\n\n* Also during cleanup, it is pointless to try and grant lock to a\n  previously blocked entrylk (say L1) as part of releasing another\n  conflicting lock (L2), (which is a side-effect of L1 not being\n  deleted from blocked_locks list before grant_blocked_entry_locks()\n  in cleanup) if L1 is also associated with the DISCONNECTing client.\n  This patch fixes the problem.\n\nChange-Id: Ie077f8eeb61c5505f047a8fdaac67db32e5d4270\nBUG: 1089470\nSigned-off-by: Krutika Dhananjay <kdhananj@redhat.com>\nReviewed-on: http://review.gluster.org/7576\nReviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>\nTested-by: Gluster Build System <jenkins@build.gluster.com>\nReviewed-by: Niels de Vos <ndevos@redhat.com>","Krutika Dhananjay",false],["f46a3198b1a3d794c23b8ac2ab9334326c4918c8","2984012edea8c56495ff9b7e41b213fdc75c4f97@redhat.com","cluster/afr: Unable to self heal symbolic links\n\nProblem:\nUnder the entry self heal, readlink is done at the\nsource and sink. When readlink is done at the sink,\nbecause link is not present at the sink, afr expects\nENOENT. AFR translator takes decisions for new link\ncreation based on ENOENT but server translator is modified\nto return ESTALE because of which afr xlator is not able\nto heal.\n\nFix:\nThe check for inode absence at server includes ESTALE as\nwell.\n\nChange-Id: I9218da214ed44f7219570ad9dae298d6b5cbded9\nBUG: 1046624\nSigned-off-by: Venkatesh Somyajulu <vsomyaju@redhat.com>\nReviewed-on: http://review.gluster.org/6600\nTested-by: Gluster Build System <jenkins@build.gluster.com>\nReviewed-by: Niels de Vos <ndevos@redhat.com>","Venkatesh Somyajulu",false],["94282fcae8ecb0d53399baa4e96f3aaa443979f0","7bda0c0ee7f47171cc808e9e60292cbc5d8140dd@redhat.com","fuse: prevent READDIR(P) from writing to much data to /dev/fuse\n\nIn an environment with mixed architectures (32-bit servers, 64-bit\nclient), it is possible that the on-wire Reply on a READDIR(P) procedure\ncontains more direntries than the client can fit in the maximum size\nthat the fuse-request indicated.\n\nA direntry is a dynamically sized structure, because the structure\ncontains the name of the entry. The client sends a maximum size in the\nREADDIR(P) Call to the server, and the server uses this size to limit\nthe number of direntries to return. In case the server can pack more\ndirentries in the requested maximum size (due to alignment differences\nbetween the architectures), it can happen that the client unpacks the\nlist of direntries into a buffer that exceeds the maximum size that was\ngiven in the initial fuse-request.\n\nThis change introduces a check for the maximum requested size of the\nfuse-response in fuse_readdir_cbk() and fuse_readdirp_cbk(). When the\nconversion from gluster-direntries to the fuse-direntry format takes\nplace, the maximum size is checked, and the 'extra' direntries are\ndiscarded. The next readdir()/getdents() that is done, will fetch the\njust discarded direntries again.\n\nIn addition to this bugfix, some extra logging in send_fuse_iov() and\nsend_fuse_data() has been added to help diagnosing similar issues.\n\nThis change combines two commits from master:\n> Commit: 20e317011af7c0f075819bf0648b225f6dc42350\n> Change-Id: If2eecfcdf9c248f3820035601446d2c89ff9d1a1\n> BUG: 1074023\n> Signed-off-by: Niels de Vos <ndevos@redhat.com>\n> Reviewed-on: http://review.gluster.org/7278\n> Tested-by: Gluster Build System <jenkins@build.gluster.com>\n> Reviewed-by: Xavier Hernandez <xhernandez@datalab.es>\n> Reviewed-by: Anand Avati <avati@redhat.com>\n>\n> Commit: 76ab97169f63da78c9e83daf040d7b09766497cf\n> Change-Id: Ic62d9d729a86a1a6a53ed1354fce153bac01d860\n> BUG: 1074023\n> Reported-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>\n> Signed-off-by: Niels de Vos <ndevos@redhat.com>\n> Reviewed-on: http://review.gluster.org/7547\n> Tested-by: Gluster Build System <jenkins@build.gluster.com>\n> Reviewed-by: Anand Avati <avati@redhat.com>\n\nChange-Id: Id847db26d861a9805041ff3367e848da7be05545\nBUG: 1089934\nSigned-off-by: Niels de Vos <ndevos@redhat.com>\nReviewed-on: http://review.gluster.org/7522\nTested-by: Gluster Build System <jenkins@build.gluster.com>\nReviewed-by: Xavier Hernandez <xhernandez@datalab.es>","Niels de Vos",false],["a256094f34df6500bcd19845fd0f32a9f3690751","7bda0c0ee7f47171cc808e9e60292cbc5d8140dd@redhat.com","write-behind: track filesize when doing extending writes\n\nA program that calls mmap() on a newly created sparse file, may receive\na SIGBUS signal. If SIGBUS is not handled, a segmentation fault will\noccur and the program will exit.\n\nA bug in the write-behind translator can cause the creation of a sparse\nfile created with open(), seek(), write() to be cached. The last write()\nmay not be sent to the server, until write-behind deems this necessary.\n\n* open(.., O_TRUNC, ...)/creat() the file, it is 0 bytes big\n* seek() into the file, use offset 31\n* write() 1 byte to the file\n* the range from byte 0-30 are unwritten so called 'sparse'\n\nThe following illustration tries to capture this:\n\n    Legend:\n    [ = start of file\n    _ = unallocated/unwritten bytes\n    # = allocated bytes in the file\n    ] = end of file\n\n    [_______________#]\n     |              |\n     '- byte 0      '- byte 31\n\nWithout this change, reading from byte 0-30 will return an error, and\nreading the same area through an mmap()'d pointer will trigger a SIGBUS.\nReading from this range did not trigger the outstanding write() to be\nflushed. The brick that receives the read() (translated over the network\nfrom mmap()) does not know that the file has been extended, and returns\n-EINVAL. This error gets transported back from the brick to the\nglusterfs-fuse client, and translated by the Linux kernel/VFS into\nSIGBUS triggered by mmap().\n\nIn order to solve this, a new attribute to the wb_inode structure is\nintroduced; the current size of the file. All FOPs that can modify the\nsize, are expected to update wb_inode->size. This makes it possible for\nextending writes with an offset bigger than EOF to mark the unwritten\narea as modified/pending.\n\nCherry picked from commit b0515e2a4a08b657ef7e9715fb8c6222c700e78c:\n> Change-Id: If5ba6646732e6be26568541ea9b12852a5d0b988\n> BUG: 1058663\n> Signed-off-by: Niels de Vos <ndevos@redhat.com>\n> Reviewed-on: http://review.gluster.org/6835\n> Tested-by: Gluster Build System <jenkins@build.gluster.com>\n> Reviewed-by: Raghavendra G <rgowdapp@redhat.com>\n> Reviewed-by: Anand Avati <avati@redhat.com>\n\nChange-Id: Ic73288202c6cb37d8c066628e9c489c6fade49bd\nBUG: 1071191\nSigned-off-by: Niels de Vos <ndevos@redhat.com>\nReviewed-on: http://review.gluster.org/7166\nTested-by: Gluster Build System <jenkins@build.gluster.com>","Niels de Vos",false],["e528724e793a8add1e3c21932913d8cb4e93da8c","7bda0c0ee7f47171cc808e9e60292cbc5d8140dd@redhat.com","posix: if brick-uid or brick-gid is not specified, do not set\n\nCurrent code would set owner uid/gid explicitly to 0/0 on start\neven if none was specified. Fix it.\n\nCherry picked from commit 8bdc329:\n> Change-Id: I72dec9e79c51bd1eb3af5334c42b7c23b01d0258\n> BUG: 1040275\n> Signed-off-by: Anand Avati <avati@redhat.com>\n> Reviewed-on: http://review.gluster.org/6476\n> Tested-by: Gluster Build System <jenkins@build.gluster.com>\n> Tested-by: Lukáš Bezdička <lukas.bezdicka@gooddata.com>\n> Reviewed-by: Krishnan Parthasarathi <kparthas@redhat.com>\n> Reviewed-by: Vijay Bellur <vbellur@redhat.com>\n\nChange-Id: Ie0396c1a4e6e0979ea9c855d33db963544a75c42\nBUG: 1095971\nSigned-off-by: Niels de Vos <ndevos@redhat.com>\nReviewed-on: http://review.gluster.org/7720\nTested-by: Gluster Build System <jenkins@build.gluster.com>","Niels de Vos",false],["ba328340e878c3156418bb3443c35a7db02a0f4b","648737a4d5e8e7f3005f086c2dbed7bf1e0319c8@harshavardhana.net","gfapi: glfs_set_volfile_server() now entertains multiple calls\n\nBackport from - http://review.gluster.org/7317\n\nPrevious API:\n\nglfs_set_volfile_server (..., const char *host, ...) - single call\n\nNew API's:\n\nglfs_set_volfile_server (..., const char *host1, ...)\nglfs_set_volfile_server (..., const char *host2, ...)\n\nMultiple calls to this function with different volfile servers,\nport or transport-type would create a list of volfile servers\nwhich would be polled during `volfile_fetch_attempts()`\n\nglfs_unset_volfile_server (..., const char *host, ...) to remove\na server from the list (this is provided for future usage)\n\n>> Change-Id: I313efbd3efbd0214e2a71465f33195788df406cc\n>> BUG: 986429\n>> Signed-off-by: Harshavardhana <harsha@harshavardhana.net>\n>> Reviewed-on: http://review.gluster.org/7317\n>> Tested-by: Gluster Build System <jenkins@build.gluster.com>\n>> Reviewed-by: Niels de Vos <ndevos@redhat.com>\n>> Reviewed-by: Anand Avati <avati@redhat.com>\n\nChange-Id: If0020f6b8775bdbe987563247c83d59a2d3744ad\nBUG: 986429\nSigned-off-by: Harshavardhana <harsha@harshavardhana.net>\nReviewed-on: http://review.gluster.org/7384\nTested-by: Gluster Build System <jenkins@build.gluster.com>\nReviewed-by: Niels de Vos <ndevos@redhat.com>","Harshavardhana",false],["46bf591eb87d743baacd30a85b99fd47db4fb055","3d98f31eab06971051372b88e77259b2119ee764@redhat.com","cluster/afr: Fix bugs in quorum implementation\n\n- Have common place to perform quorum fop wind check\n- Check if fop succeeded in a way that matches quorum\n  to avoid marking changelog in split-brain.\n\nChange-Id: I663072ece0e1de6e1ee9fccb03e1b6c968793bc5\nBUG: 1066996\nSigned-off-by: Pranith Kumar K <pkarampu@redhat.com>\nReviewed-on: http://review.gluster.org/7513\nReviewed-by: Ravishankar N <ravishankar@redhat.com>\nTested-by: Gluster Build System <jenkins@build.gluster.com>\nReviewed-by: Niels de Vos <ndevos@redhat.com>","Pranith Kumar K",false],["be331ce48633943743bbbe9665f44204e4437dee","ca630918676f465396be6c88fe8166e4d3e6bea8@gluster.com","features/marker-quota: more stringent error handling in rename.\n\nIf an error occurs and op_errno is not set to non-zero value, we can\nend up in loosing a frame resulting in a hung syscall. This patch\nadds code setting op_errno appropriately in storage/posix and\nmakes marker to set err to a default non-zero value in case of\nop_errno being zero.\n\nChange-Id: Idc2c3e843b932709a69b32ba67deb284547168f2\nBUG: 833586\nSigned-off-by: Raghavendra G <raghavendra@gluster.com>\nReviewed-on: http://review.gluster.org/6913\nTested-by: Gluster Build System <jenkins@build.gluster.com>\nReviewed-by: Niels de Vos <ndevos@redhat.com>","Raghavendra G",false],["3c33e0d8d2784c96a46d73e8b7118d3f18715818","39f15b5c9bcef5af1fee3013c5b9b9905213699e@redhat.com","build: glusterfs.spec.in, minor/nit changes to sync with Fedora spec\n\nsync with Fedora spec\n\nChange-Id: I48a52522624e38d9df0ab98071d873533f1756a8\nBUG: 1091392\nSigned-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>\nReviewed-on: http://review.gluster.org/7564\nReviewed-by: Niels de Vos <ndevos@redhat.com>\nTested-by: Gluster Build System <jenkins@build.gluster.com>\nReviewed-by: Humble Devassy Chirammal <humble.devassy@gmail.com>","Kaleb S. KEITHLEY",false],["4fbbbcf72a0de6df19b14f2af9da653c6190dfe2","7bda0c0ee7f47171cc808e9e60292cbc5d8140dd@redhat.com","Removed the old and unused non-Glupy Python bindings code\n\nCherry picked from commit 0a8abcc5d0b727746a2ac6c0d5729700bfea742b:\n> BUG: 1064096\n> Change-Id: Ifd34f46f0f0b45bbc27d35953e6ecbca36753886\n> Signed-off-by: Justin Clift <jclift@redhat.com>\n> Reviewed-on: http://review.gluster.org/6980\n> Reviewed-by: Jeff Darcy <jdarcy@redhat.com>\n\nChange-Id: I330dca1d53cb85ffc9ee823afa6bca056f34c824\nBUG: 1064096\nSigned-off-by: Niels de Vos <ndevos@redhat.com>\nReviewed-on: http://review.gluster.org/7731\nTested-by: Gluster Build System <jenkins@build.gluster.com>","Niels de Vos",false],["29a5a7642d1762f2336ef8e89b81039e25810e1a","7bda0c0ee7f47171cc808e9e60292cbc5d8140dd@redhat.com","doc: Adding user documentation for WORM feature\n\nCherry picked from commit 03813a6ec08405c815b993551d16f07075efd467:\n> Change-Id: Ic31c8305254dd00eae986fbb322cac3761b5d330\n> BUG: 1086760\n> Signed-off-by: Kasturi Narra <knarra@redhat.com>\n> Reviewed-on: http://review.gluster.org/7530\n> Reviewed-by: Humble Devassy Chirammal <humble.devassy@gmail.com>\n> Reviewed-by: Niels de Vos <ndevos@redhat.com>\n> Reviewed-by: Lalatendu Mohanty <lmohanty@redhat.com>\n> Tested-by: Gluster Build System <jenkins@build.gluster.com>\n\nChange-Id: I5897ad47ae995ec55418dca0308dd97f00e1a1e0\nBUG: 1086760\nSigned-off-by: Niels de Vos <ndevos@redhat.com>\nReviewed-on: http://review.gluster.org/7732","Niels de Vos",false],["0c87b67ba9659a2d029d8136835331301b7b6ceb","d83894965d597d87a548ff845500589a4a6a54e9@redhat.com","libgfapi:  Added support to fetch volume info from glusterd and store in glfs object.\n\nDefined new APIs in the libgfapi module, given a glfs object,\n * to send handshake RPC call to glusterd process to fetch UUID of the volume\n * store it in the glusterfs_context linked to the glfs object.\n * to parse UUID from its cannonical string format into 16-byte array\n   before sending it to the libgfapi users.\n\nDefined a RPC call in glusterd which can be used to query volume related\ninfo by other processes using 'clnt_handshake_procs'.\n\nNote - Currently this RPC call to glusterd process is used only to fetch UUID.\nBut it can be extended to get other volume related structures as well.\n\nIn addition to the above, defined a new variable to keep track of such handshake\nRPCs still in progress to make sure all the corresponding RPC callbacks have been\nprocessed before libgfapi returns the glfs object initialized.\n\nAlso bumping up the GFAPI current version number since there is a new API\n\"glfs_get_volume_id\" defined and exposed by libgfapi as part of these changes.\n\nCherry picked from commit 5adb10b9ac1c634334f29732e062b12d747ae8c5:\n> Change-Id: I303f76d7177d32d25bdb301b1dbcf5cd73f42807\n> BUG: 1095775\n> Signed-off-by: Soumya Koduri <skoduri@redhat.com>\n> Reviewed-on: http://review.gluster.org/7218\n> Reviewed-by: Anand Avati <avati@redhat.com>\n> Reviewed-by: Harshavardhana <harsha@harshavardhana.net>\n> Tested-by: Gluster Build System <jenkins@build.gluster.com>\n> Reviewed-by: Vijay Bellur <vbellur@redhat.com>\n\nThis change differs a little from the patch in the master branch:\n- libgfapi in 3.5 does not have glfs_get_volfile(), so there were some\n  merge conflicts resolved,\n- libgfapi in 3.5 is not versioned, the configure.ac changes related to\n  the versioning have been skipped,\n- in the master branch only the XDR .x files are available, release-3.5\n  requires a manual re-generation of the relates .h and .c files.\n\nChange-Id: I52c32d0e69a52a7f4285f74164bca6fd83c4f3b3\nBUG: 1095775\nSigned-off-by: Soumya Koduri <skoduri@redhat.com>\nReviewed-on: http://review.gluster.org/7741\nReviewed-by: Niels de Vos <ndevos@redhat.com>\nTested-by: Niels de Vos <ndevos@redhat.com>","Soumya Koduri",false],["4b2da260afb962c3411e75cb450e081e675e51ff","3d98f31eab06971051372b88e77259b2119ee764@redhat.com","cluster/afr: Remove eager-lock stub on finodelk failure\n\nProblem:\nFor write fops afr's transaction eager-lock init adds transactions\nthat can share eager-lock to fdctx list. But if eager-lock finodelk\nfop fails the stub remains in the list. This could later lead to\ncorruption of the list and lead to infinite loop on the list\nleading to a mount hang.\n\nFix:\nRemove the stub when finodelk fails.\n\nChange-Id: Ic9d1368907c32edb4ea2e6db623e869e4f50180d\nBUG: 1063190\nSigned-off-by: Pranith Kumar K <pkarampu@redhat.com>\nReviewed-on: http://review.gluster.org/7748\nTested-by: Gluster Build System <jenkins@build.gluster.com>\nReviewed-by: Niels de Vos <ndevos@redhat.com>\nTested-by: Niels de Vos <ndevos@redhat.com>","Pranith Kumar K",false],["febae2965d1104531d032b2a767428b3b5d5283f","10460665c63c1e41b922ea2cdf63084aa1a91e2a@redhat.com","cluster/afr: send opendirs to all children for entry self-heal\n\nProblem: In entry self-heal, opendir was sent only to one source because of\nwhich afr_sh_erase_pending() failed to clear the changelogs of other sources. So\nheals were happening multiple times.\n\nFix :Send opendir to all sources.\n\nChange-Id: Ief4f131848b24a0da782f29b9f1d40e136d3fcff\nBUG: 1096040\nSigned-off-by: Ravishankar N <ravishankar@redhat.com>\nReviewed-on: http://review.gluster.org/7723\nReviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>\nTested-by: Gluster Build System <jenkins@build.gluster.com>\nReviewed-by: Niels de Vos <ndevos@redhat.com>","Ravishankar N",false],["dab43af8499ae531daa3cc5fa2e5b8dd9fadf564","e70f0bb3a319f4a9e7882166ecc7ae70bcdde7c6@bwstor.com.cn","storage/posix: fix return value of fsync on error\n\nSigned-off-by: Zhang Huan <zhhuan@gmail.com>","Zhang Huan",true]],"size":19,"ref":"refs/heads/openfs-3.5","head":"dab43af8499ae531daa3cc5fa2e5b8dd9fadf564"}