{"push_id":736572827,"size":1000,"distinct_size":2277,"ref":"refs/heads/master","head":"45b4b782e8489bcf45a4331ee32f0f3037c5c3aa","before":"6aaf0da8728c55ff627619f933ed161cc89057c6","commits":[{"sha":"5437f2417225dc89c785867f4790012668006abc","author":{"email":"84cd5483a2f9acd1c37251cba7c2908448f221b8@suse.cz","name":"Miklos Szeredi"},"message":"fuse: account as waiting before queuing for background\n\nMove accounting of fc->num_waiting to the point where the request actually\nstarts waiting.  This is earlier than the current queue_request() for\nbackground requests, since they might be waiting on the fc->bg_queue before\nbeing queued on fc->pending.\n\nSigned-off-by: Miklos Szeredi <mszeredi@suse.cz>\nReviewed-by: Ashish Samant <ashish.samant@oracle.com>","distinct":true,"url":"https://api.github.com/repos/yangoliver/linux/commits/5437f2417225dc89c785867f4790012668006abc"},{"sha":"de15522646b9822d82b613d84cfeb4482370db3d","author":{"email":"84cd5483a2f9acd1c37251cba7c2908448f221b8@suse.cz","name":"Miklos Szeredi"},"message":"fuse: check conn_error earlier\n\nfc->conn_error is set once in FUSE_INIT reply and never cleared.  Check it\nin request allocation, there's no sense in doing all the preparation if\nsending will surely fail.\n\nSigned-off-by: Miklos Szeredi <mszeredi@suse.cz>\nReviewed-by: Ashish Samant <ashish.samant@oracle.com>","distinct":true,"url":"https://api.github.com/repos/yangoliver/linux/commits/de15522646b9822d82b613d84cfeb4482370db3d"},{"sha":"f0139aa819dfc8e80f664bd08800fc48233cb94e","author":{"email":"84cd5483a2f9acd1c37251cba7c2908448f221b8@suse.cz","name":"Miklos Szeredi"},"message":"fuse: fold fuse_request_send_nowait() into single caller\n\nAnd the same with fuse_request_send_nowait_locked().\n\nSigned-off-by: Miklos Szeredi <mszeredi@suse.cz>\nReviewed-by: Ashish Samant <ashish.samant@oracle.com>","distinct":true,"url":"https://api.github.com/repos/yangoliver/linux/commits/f0139aa819dfc8e80f664bd08800fc48233cb94e"},{"sha":"ccd0a0bd16ff01bb27bacbeb2e0e4983dc299502","author":{"email":"84cd5483a2f9acd1c37251cba7c2908448f221b8@suse.cz","name":"Miklos Szeredi"},"message":"fuse: call fuse_abort_conn() in dev release\n\nfuse_abort_conn() does all the work done by fuse_dev_release() and more.\n\"More\" consists of:\n\n\tend_io_requests(fc);\n\twake_up_all(&fc->waitq);\n\tkill_fasync(&fc->fasync, SIGIO, POLL_IN);\n\nAll of which should be no-op (WARN_ON's added).\n\nSigned-off-by: Miklos Szeredi <mszeredi@suse.cz>\nReviewed-by: Ashish Samant <ashish.samant@oracle.com>","distinct":true,"url":"https://api.github.com/repos/yangoliver/linux/commits/ccd0a0bd16ff01bb27bacbeb2e0e4983dc299502"},{"sha":"0d8e84b0432beb6d11a1c82deeb9dc1a7bee02c0","author":{"email":"84cd5483a2f9acd1c37251cba7c2908448f221b8@suse.cz","name":"Miklos Szeredi"},"message":"fuse: simplify request abort\n\n - don't end the request while req->locked is true\n\n - make unlock_request() return an error if the connection was aborted\n\nSigned-off-by: Miklos Szeredi <mszeredi@suse.cz>\nReviewed-by: Ashish Samant <ashish.samant@oracle.com>","distinct":true,"url":"https://api.github.com/repos/yangoliver/linux/commits/0d8e84b0432beb6d11a1c82deeb9dc1a7bee02c0"},{"sha":"825d6d3395e88a616e4c953984d77eeacbad4310","author":{"email":"84cd5483a2f9acd1c37251cba7c2908448f221b8@suse.cz","name":"Miklos Szeredi"},"message":"fuse: req use bitops\n\nFiner grained locking will mean there's no single lock to protect\nmodification of bitfileds in fuse_req.\n\nSo move to using bitops.  Can use the non-atomic variants for those which\nhappen while the request definitely has only one reference.\n\nSigned-off-by: Miklos Szeredi <mszeredi@suse.cz>\nReviewed-by: Ashish Samant <ashish.samant@oracle.com>","distinct":true,"url":"https://api.github.com/repos/yangoliver/linux/commits/825d6d3395e88a616e4c953984d77eeacbad4310"},{"sha":"dc00809a53edd15369906b90407a2d5b976289f5","author":{"email":"84cd5483a2f9acd1c37251cba7c2908448f221b8@suse.cz","name":"Miklos Szeredi"},"message":"fuse: use per req lock for lock/unlock_request()\n\nReuse req->waitq.lock for protecting FR_ABORTED and FR_LOCKED flags.\n\nSigned-off-by: Miklos Szeredi <mszeredi@suse.cz>\nReviewed-by: Ashish Samant <ashish.samant@oracle.com>","distinct":true,"url":"https://api.github.com/repos/yangoliver/linux/commits/dc00809a53edd15369906b90407a2d5b976289f5"},{"sha":"b716d425385ed392adc8e619020c1d77ae5ec1cb","author":{"email":"84cd5483a2f9acd1c37251cba7c2908448f221b8@suse.cz","name":"Miklos Szeredi"},"message":"fuse: fold helpers into abort\n\nFold end_io_requests() and end_queued_requests() into fuse_abort_conn().\n\nSigned-off-by: Miklos Szeredi <mszeredi@suse.cz>\nReviewed-by: Ashish Samant <ashish.samant@oracle.com>","distinct":true,"url":"https://api.github.com/repos/yangoliver/linux/commits/b716d425385ed392adc8e619020c1d77ae5ec1cb"},{"sha":"41f982747e8175a4eb5e8d1939bdbb10f435b7f6","author":{"email":"84cd5483a2f9acd1c37251cba7c2908448f221b8@suse.cz","name":"Miklos Szeredi"},"message":"fuse: rework abort\n\nSplice fc->pending and fc->processing lists into a common kill list while\nholding fc->lock.\n\nBy the time we release fc->lock, pending and processing lists are empty and\nthe io list contains only locked requests.\n\nSigned-off-by: Miklos Szeredi <mszeredi@suse.cz>\nReviewed-by: Ashish Samant <ashish.samant@oracle.com>","distinct":true,"url":"https://api.github.com/repos/yangoliver/linux/commits/41f982747e8175a4eb5e8d1939bdbb10f435b7f6"},{"sha":"7d2e0a099c7685a7355c27a2c3dc76ea7cfc8283","author":{"email":"84cd5483a2f9acd1c37251cba7c2908448f221b8@suse.cz","name":"Miklos Szeredi"},"message":"fuse: simplify unique ctr\n\nSince it's a 64bit counter, it's never gonna wrap around.  Remove code\ndealing with that possibility.\n\nSigned-off-by: Miklos Szeredi <mszeredi@suse.cz>\nReviewed-by: Ashish Samant <ashish.samant@oracle.com>","distinct":true,"url":"https://api.github.com/repos/yangoliver/linux/commits/7d2e0a099c7685a7355c27a2c3dc76ea7cfc8283"},{"sha":"c47752673acb130e5132db0e52363e15be260ca4","author":{"email":"84cd5483a2f9acd1c37251cba7c2908448f221b8@suse.cz","name":"Miklos Szeredi"},"message":"fuse: don't hold lock over request_wait_answer()\n\nOnly hold fc->lock over sections of request_wait_answer() that actually\nneed it.  If wait_event_interruptible() returns zero, it means that the\nrequest finished.  Need to add memory barriers, though, to make sure that\nall relevant data in the request is synchronized.\n\nSigned-off-by: Miklos Szeredi <mszeredi@suse.cz>","distinct":true,"url":"https://api.github.com/repos/yangoliver/linux/commits/c47752673acb130e5132db0e52363e15be260ca4"},{"sha":"7a3b2c754749c73b4a255b2a1070c24dba589098","author":{"email":"84cd5483a2f9acd1c37251cba7c2908448f221b8@suse.cz","name":"Miklos Szeredi"},"message":"fuse: simplify req states\n\nFUSE_REQ_INIT is actually the same state as FUSE_REQ_PENDING and\nFUSE_REQ_READING and FUSE_REQ_WRITING can be merged into a common\nFUSE_REQ_IO state.\n\nSigned-off-by: Miklos Szeredi <mszeredi@suse.cz>\nReviewed-by: Ashish Samant <ashish.samant@oracle.com>","distinct":true,"url":"https://api.github.com/repos/yangoliver/linux/commits/7a3b2c754749c73b4a255b2a1070c24dba589098"},{"sha":"33e14b4dfdc477344efbcd9b4218f2b350f0f893","author":{"email":"84cd5483a2f9acd1c37251cba7c2908448f221b8@suse.cz","name":"Miklos Szeredi"},"message":"fuse: req state use flags\n\nUse flags for representing the state in fuse_req.  This is needed since\nreq->list will be protected by different locks in different states, hence\nwe'll want the state itself to be split into distinct bits, each protected\nwith the relevant lock in that state.\n\nSigned-off-by: Miklos Szeredi <mszeredi@suse.cz>","distinct":true,"url":"https://api.github.com/repos/yangoliver/linux/commits/33e14b4dfdc477344efbcd9b4218f2b350f0f893"},{"sha":"f88996a93324483ff3ec027312bbacacf97a555b","author":{"email":"84cd5483a2f9acd1c37251cba7c2908448f221b8@suse.cz","name":"Miklos Szeredi"},"message":"fuse: separate out input queue\n\nThe input queue contains normal requests (fc->pending), forgets\n(fc->forget_*) and interrupts (fc->interrupts).  There's also fc->waitq and\nfc->fasync for waking up the readers of the fuse device when a request is\navailable.\n\nThe fc->reqctr is also moved to the input queue (assigned to the request\nwhen the request is added to the input queue.\n\nThis patch just rearranges the fields, no functional change.\n\nSigned-off-by: Miklos Szeredi <mszeredi@suse.cz>\nReviewed-by: Ashish Samant <ashish.samant@oracle.com>","distinct":true,"url":"https://api.github.com/repos/yangoliver/linux/commits/f88996a93324483ff3ec027312bbacacf97a555b"},{"sha":"e16714d8756dc1237a66994e139b61feebcf707a","author":{"email":"84cd5483a2f9acd1c37251cba7c2908448f221b8@suse.cz","name":"Miklos Szeredi"},"message":"fuse: duplicate ->connected in iqueue\n\nThis will allow checking ->connected just with the input queue lock.\n\nSigned-off-by: Miklos Szeredi <mszeredi@suse.cz>\nReviewed-by: Ashish Samant <ashish.samant@oracle.com>","distinct":true,"url":"https://api.github.com/repos/yangoliver/linux/commits/e16714d8756dc1237a66994e139b61feebcf707a"},{"sha":"8c91189a2a8f5e69457bea9f48350c48310cec5b","author":{"email":"84cd5483a2f9acd1c37251cba7c2908448f221b8@suse.cz","name":"Miklos Szeredi"},"message":"fuse: abort: group iqueue accesses\n\nRearrange fuse_abort_conn() so that input queue accesses are grouped\ntogether.\n\nSigned-off-by: Miklos Szeredi <mszeredi@suse.cz>\nReviewed-by: Ashish Samant <ashish.samant@oracle.com>","distinct":true,"url":"https://api.github.com/repos/yangoliver/linux/commits/8c91189a2a8f5e69457bea9f48350c48310cec5b"},{"sha":"ef759258869c63e8df9b886ebaf9451c4bbe6cea","author":{"email":"84cd5483a2f9acd1c37251cba7c2908448f221b8@suse.cz","name":"Miklos Szeredi"},"message":"fuse: dev read: split list_move\n\nDifferent lists will need different locks.\n\nSigned-off-by: Miklos Szeredi <mszeredi@suse.cz>\nReviewed-by: Ashish Samant <ashish.samant@oracle.com>","distinct":true,"url":"https://api.github.com/repos/yangoliver/linux/commits/ef759258869c63e8df9b886ebaf9451c4bbe6cea"},{"sha":"4ce6081260ea4c1b5bfa8ecca5cbb93eea279ad4","author":{"email":"84cd5483a2f9acd1c37251cba7c2908448f221b8@suse.cz","name":"Miklos Szeredi"},"message":"fuse: iqueue locking\n\nUse fiq->waitq.lock for protecting members of struct fuse_iqueue and\nFR_PENDING request flag, previously protected by fc->lock.\n\nFollowing patches will remove fc->lock protection from these members.\n\nSigned-off-by: Miklos Szeredi <mszeredi@suse.cz>\nReviewed-by: Ashish Samant <ashish.samant@oracle.com>","distinct":true,"url":"https://api.github.com/repos/yangoliver/linux/commits/4ce6081260ea4c1b5bfa8ecca5cbb93eea279ad4"},{"sha":"8f7bb368dbdda76f5e98e05ee49ae2dc138fd42f","author":{"email":"84cd5483a2f9acd1c37251cba7c2908448f221b8@suse.cz","name":"Miklos Szeredi"},"message":"fuse: allow interrupt queuing without fc->lock\n\nInterrupt is only queued after the request has been sent to userspace.\nThis is either done in request_wait_answer() or fuse_dev_do_read()\ndepending on which state the request is in at the time of the interrupt.\nIf it's not yet sent, then queuing the interrupt is postponed until the\nrequest is read.  Otherwise (the request has already been read and is\nwaiting for an answer) the interrupt is queued immedidately.\n\nWe want to call queue_interrupt() without fc->lock protection, in which\ncase there can be a race between the two functions:\n\n - neither of them queue the interrupt (thinking the other one has already\n   done it).\n\n - both of them queue the interrupt\n\nThe first one is prevented by adding memory barriers, the second is\nprevented by checking (under fiq->waitq.lock) if the interrupt has already\nbeen queued.\n\nSigned-off-by: Miklos Szeredi <mszeredi@suse.cz>","distinct":true,"url":"https://api.github.com/repos/yangoliver/linux/commits/8f7bb368dbdda76f5e98e05ee49ae2dc138fd42f"},{"sha":"fd22d62ed0c36e260ac3e13167bc073f28407c70","author":{"email":"84cd5483a2f9acd1c37251cba7c2908448f221b8@suse.cz","name":"Miklos Szeredi"},"message":"fuse: no fc->lock for iqueue parts\n\nRemove fc->lock protection from input queue members, now protected by\nfiq->waitq.lock.\n\nSigned-off-by: Miklos Szeredi <mszeredi@suse.cz>\nReviewed-by: Ashish Samant <ashish.samant@oracle.com>","distinct":true,"url":"https://api.github.com/repos/yangoliver/linux/commits/fd22d62ed0c36e260ac3e13167bc073f28407c70"}]}