)]}'
{"id":"LineageOS%2Fandroid_kernel_xiaomi_earth~474103","triplet_id":"LineageOS%2Fandroid_kernel_xiaomi_earth~lineage-23.2~I6782a2edf98970b6c2d662048061e28f7e57b9c9","project":"LineageOS/android_kernel_xiaomi_earth","branch":"lineage-23.2","hashtags":[],"change_id":"I6782a2edf98970b6c2d662048061e28f7e57b9c9","subject":"UPSTREAM: close_range(): fix the logics in descriptor table trimming","status":"MERGED","created":"2026-02-11 07:06:15.000000000","updated":"2026-02-15 11:26:20.000000000","submitted":"2026-02-15 11:26:20.000000000","submitter":{"_account_id":26349,"name":"Matsvei Niaverau","email":"matvej2002@gmail.com","username":"surblazer","avatars":[{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"474110","meta_rev_id":"a349d94473918369786e8d377c4fc4be0b71afcf","_number":474103,"virtual_id_number":474103,"owner":{"_account_id":26349,"name":"Matsvei Niaverau","email":"matvej2002@gmail.com","username":"surblazer","avatars":[{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"actions":{},"labels":{"Verified":{"approved":{"_account_id":26349,"name":"Matsvei Niaverau","email":"matvej2002@gmail.com","username":"surblazer","avatars":[{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"all":[{"value":1,"date":"2026-02-15 11:25:55.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":26349,"name":"Matsvei Niaverau","email":"matvej2002@gmail.com","username":"surblazer","avatars":[{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]}],"values":{"-1":"Fails"," 0":"No score","+1":"Verified"},"description":"","default_value":0},"Code-Review":{"approved":{"_account_id":26349,"name":"Matsvei Niaverau","email":"matvej2002@gmail.com","username":"surblazer","avatars":[{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"all":[{"value":2,"date":"2026-02-15 11:25:55.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":26349,"name":"Matsvei Niaverau","email":"matvej2002@gmail.com","username":"surblazer","avatars":[{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]}],"values":{"-2":"Do not submit","-1":"I would prefer that you didn\u0027t submit this"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me, approved"},"description":"","default_value":0},"CI":{"all":[{"value":0,"_account_id":26349,"name":"Matsvei Niaverau","email":"matvej2002@gmail.com","username":"surblazer","avatars":[{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]}],"values":{"-1":"Fail"," 0":"No score","+1":"Pass"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":26349,"name":"Matsvei Niaverau","email":"matvej2002@gmail.com","username":"surblazer","avatars":[{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]}]},"pending_reviewers":{},"reviewer_updates":[],"messages":[{"id":"b8f976f94c4c132d1f81f714db65df4aae61f50a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":26349,"name":"Matsvei Niaverau","email":"matvej2002@gmail.com","username":"surblazer","avatars":[{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"date":"2026-02-11 07:06:15.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"ff5a464e46972e64e22e7ebef1b8f8c7a763381f","author":{"_account_id":26349,"name":"Matsvei Niaverau","email":"matvej2002@gmail.com","username":"surblazer","avatars":[{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"date":"2026-02-15 11:25:55.000000000","message":"Patch Set 1: Code-Review+2 Verified+1","accounts_in_message":[],"_revision_number":1},{"id":"a349d94473918369786e8d377c4fc4be0b71afcf","tag":"autogenerated:gerrit:merged","author":{"_account_id":26349,"name":"Matsvei Niaverau","email":"matvej2002@gmail.com","username":"surblazer","avatars":[{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"date":"2026-02-15 11:26:20.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"66a40ab4f312470856c4e9d8091b0d9afa2eee06","revisions":{"66a40ab4f312470856c4e9d8091b0d9afa2eee06":{"kind":"REWORK","_number":1,"created":"2026-02-11 07:06:15.000000000","uploader":{"_account_id":26349,"name":"Matsvei Niaverau","email":"matvej2002@gmail.com","username":"surblazer","avatars":[{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"ref":"refs/changes/03/474103/1","fetch":{"anonymous http":{"url":"https://github.com/LineageOS/android_kernel_xiaomi_earth","ref":"refs/changes/03/474103/1","commands":{"Branch":"git fetch https://github.com/LineageOS/android_kernel_xiaomi_earth refs/changes/03/474103/1 \u0026\u0026 git checkout -b change-474103 FETCH_HEAD","Checkout":"git fetch https://github.com/LineageOS/android_kernel_xiaomi_earth refs/changes/03/474103/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://github.com/LineageOS/android_kernel_xiaomi_earth refs/changes/03/474103/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://github.com/LineageOS/android_kernel_xiaomi_earth refs/changes/03/474103/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://github.com/LineageOS/android_kernel_xiaomi_earth refs/changes/03/474103/1","Reset To":"git fetch https://github.com/LineageOS/android_kernel_xiaomi_earth refs/changes/03/474103/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"cc55ecfaa95bdd5d66176ef2a67f7549131ef25b","subject":"UPSTREAM: fs: fix fd table size alignment properly","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_kernel_xiaomi_earth/commit/cc55ecfaa95bdd5d66176ef2a67f7549131ef25b"}]}],"author":{"name":"Al Viro","email":"viro@zeniv.linux.org.uk","date":"2024-08-16 19:17:00.000000000","tz":-240},"committer":{"name":"Matsvei Niaverau","email":"matvej2002@gmail.com","date":"2026-02-10 17:11:38.000000000","tz":60},"subject":"UPSTREAM: close_range(): fix the logics in descriptor table trimming","message":"UPSTREAM: close_range(): fix the logics in descriptor table trimming\n\ncommit 678379e1d4f7443b170939525d3312cfc37bf86b upstream.\n\nCloning a descriptor table picks the size that would cover all currently\nopened files.  That\u0027s fine for clone() and unshare(), but for close_range()\nthere\u0027s an additional twist - we clone before we close, and it would be\na shame to have\n\tclose_range(3, ~0U, CLOSE_RANGE_UNSHARE)\nleave us with a huge descriptor table when we are not going to keep\nanything past stderr, just because some large file descriptor used to\nbe open before our call has taken it out.\n\nUnfortunately, it had been dealt with in an inherently racy way -\nsane_fdtable_size() gets a \"don\u0027t copy anything past that\" argument\n(passed via unshare_fd() and dup_fd()), close_range() decides how much\nshould be trimmed and passes that to unshare_fd().\n\nThe problem is, a range that used to extend to the end of descriptor\ntable back when close_range() had looked at it might very well have stuff\ngrown after it by the time dup_fd() has allocated a new files_struct\nand started to figure out the capacity of fdtable to be attached to that.\n\nThat leads to interesting pathological cases; at the very least it\u0027s a\nQoI issue, since unshare(CLONE_FILES) is atomic in a sense that it takes\na snapshot of descriptor table one might have observed at some point.\nSince CLOSE_RANGE_UNSHARE close_range() is supposed to be a combination\nof unshare(CLONE_FILES) with plain close_range(), ending up with a\nweird state that would never occur with unshare(2) is confusing, to put\nit mildly.\n\nIt\u0027s not hard to get rid of - all it takes is passing both ends of the\nrange down to sane_fdtable_size().  There we are under -\u003efiles_lock,\nso the race is trivially avoided.\n\nSo we do the following:\n\t* switch close_files() from calling unshare_fd() to calling\ndup_fd().\n\t* undo the calling convention change done to unshare_fd() in\n60997c3d45d9 \"close_range: add CLOSE_RANGE_UNSHARE\"\n\t* introduce struct fd_range, pass a pointer to that to dup_fd()\nand sane_fdtable_size() instead of \"trim everything past that point\"\nthey are currently getting.  NULL means \"we are not going to be punching\nany holes\"; NR_OPEN_MAX is gone.\n\t* make sane_fdtable_size() use find_last_bit() instead of\nopen-coding it; it\u0027s easier to follow that way.\n\t* while we are at it, have dup_fd() report errors by returning\nERR_PTR(), no need to use a separate int *errorp argument.\n\nFixes: 60997c3d45d9 \"close_range: add CLOSE_RANGE_UNSHARE\"\nCc: stable@vger.kernel.org\nChange-Id: I6782a2edf98970b6c2d662048061e28f7e57b9c9\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_kernel_xiaomi_earth/commit/66a40ab4f312470856c4e9d8091b0d9afa2eee06"}],"resolve_conflicts_web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_kernel_xiaomi_earth/commit/66a40ab4f312470856c4e9d8091b0d9afa2eee06"}]},"branch":"refs/heads/lineage-23.2"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Verified","status":"OK","applied_by":{"_account_id":26349,"name":"Matsvei Niaverau","email":"matvej2002@gmail.com","username":"surblazer","avatars":[{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]}},{"label":"Code-Review","status":"OK","applied_by":{"_account_id":26349,"name":"Matsvei Niaverau","email":"matvej2002@gmail.com","username":"surblazer","avatars":[{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/ed6759ea3299fee01e32d1e8ccf1f75a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]}},{"label":"CI","status":"MAY"}]}],"submit_requirements":[{"name":"CI","description":"Prevent submit if CI failed.","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"-label:CI\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":[],"failing_atoms":["label:CI\u003dMIN"],"atom_explanations":{"label:CI\u003dMIN":""}}},{"name":"Verified","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Verified\u003dMAX -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX","-label:Verified\u003dMIN"],"failing_atoms":[],"atom_explanations":{}}},{"name":"Code-Review","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX","-label:Code-Review\u003dMIN"],"failing_atoms":[],"atom_explanations":{}}}]}
