rc = cifs_flush_folio(target_inode, destend, &fstart, &fend, false);
        if (rc)
                goto unlock;
+       if (fend > target_cifsi->netfs.zero_point)
+               target_cifsi->netfs.zero_point = fend + 1;
 
        /* Discard all the folios that overlap the destination region. */
        cifs_dbg(FYI, "about to discard pages %llx-%llx\n", fstart, fend);
                        fscache_resize_cookie(cifs_inode_cookie(target_inode),
                                              new_size);
                }
+               if (rc == 0 && new_size > target_cifsi->netfs.zero_point)
+                       target_cifsi->netfs.zero_point = new_size;
        }
 
        /* force revalidate of size and timestamps of target file now
        rc = cifs_flush_folio(target_inode, destend, &fstart, &fend, false);
        if (rc)
                goto unlock;
+       if (fend > target_cifsi->netfs.zero_point)
+               target_cifsi->netfs.zero_point = fend + 1;
 
        /* Discard all the folios that overlap the destination region. */
        truncate_inode_pages_range(&target_inode->i_data, fstart, fend);