The problem is that with '* text eol=lf', a tool that rewrites an unchanged file with CRLF endings makes git status report it as modified, while git diff shows nothing and git add stages nothing. The commands that run the clean filter conclude the content did not change.
The cause is the size comparison in ie_match_stat(): ie_modified() treats a size difference as proof of change and returns without reading the file. The series makes a refresh read and convert such a path when conversion is active.
A second patch adds core.convertAwareStatus, because reading costs more than trusting the size, especially when a clean filter such as Git LFS must run. The default, true, consults the conversion for any path that has one, including paths with a clean filter; no-filter consults only the conversion without a clean filter.
Junio C Hamano replied that the cover letter was overly verbose and asked why so much new code is needed. The log message makes it sound as though ce_modified_check_fs() already compares converted results when timestamps differ, so the change is to do the same when sizes differ. He asked why a new function that compares converted data is needed, and if a similar code path already exists, whether a more generic function could replace it. The excerpts do not show the author's reply.