{"ref":"refs/heads/master","push_id":55312130,"commits":[{"sha":"9535f8ee048b639985a9651bb1a02b9381ac6470","author":{"email":"5d78902c885bda21bab1f3f4d20718dff0167f20@gmail.com","name":"Anatol Pomozov"},"url":"https://api.github.com/repos/anatol/kext/commits/9535f8ee048b639985a9651bb1a02b9381ac6470","message":"Replace internal __DARWIN_64_BIT_INO_T with public macroses\n\n_DARWIN_FEATURE_64_BIT_INODE should be used as a test macro\n_DARWIN_USE_64_BIT_INODE should be used to set the 64bit inodes"},{"sha":"b3b89c7f8a07c9320dc3806887b2422c0f88729e","author":{"email":"5d78902c885bda21bab1f3f4d20718dff0167f20@gmail.com","name":"Anatol Pomozov"},"url":"https://api.github.com/repos/anatol/kext/commits/b3b89c7f8a07c9320dc3806887b2422c0f88729e","message":"Use source version as a long kext version\n\nThis is helpful to get the exact fuse4x kext version. The long version\nis built from 'git describe'."},{"sha":"f8c70d8372c6b6696add067c48415628aba1cfc0","author":{"email":"5d78902c885bda21bab1f3f4d20718dff0167f20@gmail.com","name":"Anatol Pomozov"},"url":"https://api.github.com/repos/anatol/kext/commits/f8c70d8372c6b6696add067c48415628aba1cfc0","message":"Fix path to device file"},{"sha":"5d7ad3179a6136f9db13784c4592990f9112a093","author":{"email":"5d78902c885bda21bab1f3f4d20718dff0167f20@gmail.com","name":"Anatol Pomozov"},"url":"https://api.github.com/repos/anatol/kext/commits/5d7ad3179a6136f9db13784c4592990f9112a093","message":"Use data object directly"},{"sha":"ce8fbda25294882b66e03da7e5f5bb179d2dd468","author":{"email":"5d78902c885bda21bab1f3f4d20718dff0167f20@gmail.com","name":"Anatol Pomozov"},"url":"https://api.github.com/repos/anatol/kext/commits/ce8fbda25294882b66e03da7e5f5bb179d2dd468","message":"Release biglock for vnode_getwithvid() that might block and cause a deadlock\n\nTwo fs accesses can lock each other (see an example below) in case\nif biglock is used (i.e. 64bit kernel). Release biglock to avoid the deadlock.\n\nRuby dir_rm script (see [1]):\n  <thread_invoke+1569>\n  <thread_block_reason+331>\n  <thread_block+33>\n  <lck_mtx_lock_wait_x86+368>\n  <lck_mtx_lock+657>\n  fuse_ticket_wait_answer (in org.fuse4x.kext.fuse4x.sym) (fuse_ipc.c:269)\n  fuse_dispatcher_wait_answer (in org.fuse4x.kext.fuse4x.sym) (fuse_ipc.c:980)\n  fuse_internal_readdir (in org.fuse4x.kext.fuse4x.sym) (fuse_internal.c:633)\n  fuse_vnop_readdir (in org.fuse4x.kext.fuse4x.sym) (fuse_vnops.c:2446)\n  fuse_biglock_vnop_readdir (in org.fuse4x.kext.fuse4x.sym) (fuse_biglock_vnops.c:482)\n  <VNOP_READDIR+105>\n  <rmdir_remove_orphaned_appleDouble+466>\n  <rmdir+283>\n  <unix_syscall64+554>\n  <lo64_unix_scall+23>\n\nfsdaemon:\n  <thread_invoke+1569>\n  <thread_block_reason+331>\n  <thread_block+33>\n  <lck_mtx_sleep+79>\n  <_sleep+239>\n  <msleep+165>\n  <vnode_getiocount+250>\n  <vget_internal+34>\n  HNodeLookupCreatingIfNecessary (in org.fuse4x.kext.fuse4x.sym) (fuse_nodehash.c:647)\n  FSNodeGetOrCreateFileVNodeByID (in org.fuse4x.kext.fuse4x.sym) (fuse_node.c:62)\n  fuse_vget_i (in org.fuse4x.kext.fuse4x.sym) (fuse_node.c:254)\n  fuse_vnop_lookup (in org.fuse4x.kext.fuse4x.sym) (fuse_vnops.c:1459)\n  fuse_biglock_vnop_lookup (in org.fuse4x.kext.fuse4x.sym) (fuse_biglock_vnops.c:297)\n  <VNOP_LOOKUP+97>\n  <lookup+391>\n  <namei+1520>\n  <stat2+35>\n  <lstat64+200>\n  <unix_syscall64+554>\n  <lo64_unix_scall+23>\n\n[1] https://groups.google.com/forum/#!topic/fuse4x/H_fwIhET4gU"},{"sha":"1ba6d9c3c1534c0c6682f82109de9abddd9792a6","author":{"email":"5d78902c885bda21bab1f3f4d20718dff0167f20@gmail.com","name":"Anatol Pomozov"},"url":"https://api.github.com/repos/anatol/kext/commits/1ba6d9c3c1534c0c6682f82109de9abddd9792a6","message":"Fix deadlock in cache_lookup\n\ncache_lookup can sleep waiting while other in-flight access operation\nwill be finished. This thread accures and keeps biglock while sleeping and this\nprevents the access operation to finish -> deadlock.\n\n  <thread_invoke+1213>\n  <thread_block_reason+331>\n  <thread_block+33>\n  <lck_mtx_sleep+87>\n  <_sleep+299>\n  <msleep+157>\n  <vnode_getiocount+213>\n  <vnode_getwithvid+32>\n  <cache_lookup+335>\n  <org.fuse4x.kext.fuse4x + 0x12ba1>\n  <org.fuse4x.kext.fuse4x + 0x12217>\n  <org.fuse4x.kext.fuse4x + 0x1af3>\n  <VNOP_LOOKUP+107>\n  <lookup+666>\n  <namei+1262>\n  <access+160>\n  <unix_syscall+579>\n  <lo_unix_scall+280>"},{"sha":"fd729839cf2f5912445a88f031f77d6278b527a4","author":{"email":"5d78902c885bda21bab1f3f4d20718dff0167f20@gmail.com","name":"Anatol Pomozov"},"url":"https://api.github.com/repos/anatol/kext/commits/fd729839cf2f5912445a88f031f77d6278b527a4","message":"Inline M_FUSE4X_ENABLE_UNSUPPORTED\n\nIt is always used to be enabled and there is no reason why it should be turned off"},{"sha":"597e4863103571b0bbec1454539309681e1416a9","author":{"email":"5d78902c885bda21bab1f3f4d20718dff0167f20@gmail.com","name":"Anatol Pomozov"},"url":"https://api.github.com/repos/anatol/kext/commits/597e4863103571b0bbec1454539309681e1416a9","message":"Add kext.exports as a resource file"},{"sha":"04df8449b6c9243cfde914b2183973e8a695e881","author":{"email":"5d78902c885bda21bab1f3f4d20718dff0167f20@gmail.com","name":"Anatol Pomozov"},"url":"https://api.github.com/repos/anatol/kext/commits/04df8449b6c9243cfde914b2183973e8a695e881","message":"Use NULL constant instead of casting 0 to a pointer"},{"sha":"e9557dad96dd48ac308898e411e606135878c6fd","author":{"email":"5d78902c885bda21bab1f3f4d20718dff0167f20@gmail.com","name":"Anatol Pomozov"},"url":"https://api.github.com/repos/anatol/kext/commits/e9557dad96dd48ac308898e411e606135878c6fd","message":"access() vfs operation should have permissions check consistent with other operations"},{"sha":"d2695557a304e0307dc9c4ca82c0585ee388e4f9","author":{"email":"5d78902c885bda21bab1f3f4d20718dff0167f20@gmail.com","name":"Anatol Pomozov"},"url":"https://api.github.com/repos/anatol/kext/commits/d2695557a304e0307dc9c4ca82c0585ee388e4f9","message":"Remove useless FACCESS_FROM_VNOP option\n\nIt is set only from fuse_vnops.c just before calling fuse_internal_access().\nThis is the only place where the function is called."},{"sha":"b9c8baf67d39adcaecb27030001ede69e4a62f66","author":{"email":"5d78902c885bda21bab1f3f4d20718dff0167f20@gmail.com","name":"Anatol Pomozov"},"url":"https://api.github.com/repos/anatol/kext/commits/b9c8baf67d39adcaecb27030001ede69e4a62f66","message":"Move fuse_skip_apple_xattr_mp() to the place where it is used"},{"sha":"4204df3fcf6026a9adeffcdc3a03e858a434dd8c","author":{"email":"5d78902c885bda21bab1f3f4d20718dff0167f20@gmail.com","name":"Anatol Pomozov"},"url":"https://api.github.com/repos/anatol/kext/commits/4204df3fcf6026a9adeffcdc3a03e858a434dd8c","message":"Remove dead code"},{"sha":"ec337a45246dd03ab9c5435b3c841d3d7c980a50","author":{"email":"5d78902c885bda21bab1f3f4d20718dff0167f20@gmail.com","name":"Anatol Pomozov"},"url":"https://api.github.com/repos/anatol/kext/commits/ec337a45246dd03ab9c5435b3c841d3d7c980a50","message":"Move kludge structs to the place where they used"},{"sha":"28c8c291de2060d04151084b7061462f44ec1664","author":{"email":"5d78902c885bda21bab1f3f4d20718dff0167f20@gmail.com","name":"Anatol Pomozov"},"url":"https://api.github.com/repos/anatol/kext/commits/28c8c291de2060d04151084b7061462f44ec1664","message":"Remove dead code"},{"sha":"536e3e21136b102a24619c127aeeeefd730fc76a","author":{"email":"5d78902c885bda21bab1f3f4d20718dff0167f20@gmail.com","name":"Anatol Pomozov"},"url":"https://api.github.com/repos/anatol/kext/commits/536e3e21136b102a24619c127aeeeefd730fc76a","message":"Remove fifofs\n\nThis code was never enabled in fuse4x and macfuse. It is effectively dead."},{"sha":"30c5fb0179b3b9eacec8b30677decbebaca2b4f2","author":{"email":"5d78902c885bda21bab1f3f4d20718dff0167f20@gmail.com","name":"Anatol Pomozov"},"url":"https://api.github.com/repos/anatol/kext/commits/30c5fb0179b3b9eacec8b30677decbebaca2b4f2","message":"Remove specfs\n\nIt was never enabled in fuse4x and macfuse. This code is effectively dead."},{"sha":"6522ca81fe2702102ba392df960733c8b643b7ad","author":{"email":"5d78902c885bda21bab1f3f4d20718dff0167f20@gmail.com","name":"Anatol Pomozov"},"url":"https://api.github.com/repos/anatol/kext/commits/6522ca81fe2702102ba392df960733c8b643b7ad","message":"Remove reference to API.txt"},{"sha":"62c708ea0ff6f0f67b38b68923d8dafb3e2066b5","author":{"email":"5d78902c885bda21bab1f3f4d20718dff0167f20@gmail.com","name":"Anatol Pomozov"},"url":"https://api.github.com/repos/anatol/kext/commits/62c708ea0ff6f0f67b38b68923d8dafb3e2066b5","message":"Remove unused fuse_setextendedsecurity()"},{"sha":"dc0fb280d9994c982547575296587649fe6d08df","author":{"email":"5d78902c885bda21bab1f3f4d20718dff0167f20@gmail.com","name":"Anatol Pomozov"},"url":"https://api.github.com/repos/anatol/kext/commits/dc0fb280d9994c982547575296587649fe6d08df","message":"Disable experimental KQUEUE\n\nKQUEUE should be implemented as a fuse message to userspace (similar to POLL)"}],"head":"fdab1f7cb25d074bd68332957292966d7ae4619a","size":22}