Skip to content

Commit b4ff7b1

Browse files
committed
netfs: Remove ->launder_folio() support
Remove support for ->launder_folio() from netfslib and expect filesystems to use filemap_invalidate_inode() instead. netfs_launder_folio() can then be got rid of. Signed-off-by: David Howells <[email protected]> Reviewed-by: Jeff Layton <[email protected]> cc: Eric Van Hensbergen <[email protected]> cc: Latchesar Ionkov <[email protected]> cc: Dominique Martinet <[email protected]> cc: Christian Schoenebeck <[email protected]> cc: David Howells <[email protected]> cc: Marc Dionne <[email protected]> cc: Steve French <[email protected]> cc: Matthew Wilcox <[email protected]> cc: [email protected] cc: [email protected] cc: [email protected] cc: [email protected] cc: [email protected] cc: [email protected] cc: [email protected] cc: [email protected]
1 parent d73065e commit b4ff7b1

File tree

4 files changed

+0
-80
lines changed

4 files changed

+0
-80
lines changed

fs/netfs/buffered_write.c

Lines changed: 0 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1200,77 +1200,3 @@ int netfs_writepages(struct address_space *mapping,
12001200
return ret;
12011201
}
12021202
EXPORT_SYMBOL(netfs_writepages);
1203-
1204-
/*
1205-
* Deal with the disposition of a laundered folio.
1206-
*/
1207-
static void netfs_cleanup_launder_folio(struct netfs_io_request *wreq)
1208-
{
1209-
if (wreq->error) {
1210-
pr_notice("R=%08x Laundering error %d\n", wreq->debug_id, wreq->error);
1211-
mapping_set_error(wreq->mapping, wreq->error);
1212-
}
1213-
}
1214-
1215-
/**
1216-
* netfs_launder_folio - Clean up a dirty folio that's being invalidated
1217-
* @folio: The folio to clean
1218-
*
1219-
* This is called to write back a folio that's being invalidated when an inode
1220-
* is getting torn down. Ideally, writepages would be used instead.
1221-
*/
1222-
int netfs_launder_folio(struct folio *folio)
1223-
{
1224-
struct netfs_io_request *wreq;
1225-
struct address_space *mapping = folio->mapping;
1226-
struct netfs_folio *finfo = netfs_folio_info(folio);
1227-
struct netfs_group *group = netfs_folio_group(folio);
1228-
struct bio_vec bvec;
1229-
unsigned long long i_size = i_size_read(mapping->host);
1230-
unsigned long long start = folio_pos(folio);
1231-
size_t offset = 0, len;
1232-
int ret = 0;
1233-
1234-
if (finfo) {
1235-
offset = finfo->dirty_offset;
1236-
start += offset;
1237-
len = finfo->dirty_len;
1238-
} else {
1239-
len = folio_size(folio);
1240-
}
1241-
len = min_t(unsigned long long, len, i_size - start);
1242-
1243-
wreq = netfs_alloc_request(mapping, NULL, start, len, NETFS_LAUNDER_WRITE);
1244-
if (IS_ERR(wreq)) {
1245-
ret = PTR_ERR(wreq);
1246-
goto out;
1247-
}
1248-
1249-
if (!folio_clear_dirty_for_io(folio))
1250-
goto out_put;
1251-
1252-
trace_netfs_folio(folio, netfs_folio_trace_launder);
1253-
1254-
_debug("launder %llx-%llx", start, start + len - 1);
1255-
1256-
/* Speculatively write to the cache. We have to fix this up later if
1257-
* the store fails.
1258-
*/
1259-
wreq->cleanup = netfs_cleanup_launder_folio;
1260-
1261-
bvec_set_folio(&bvec, folio, len, offset);
1262-
iov_iter_bvec(&wreq->iter, ITER_SOURCE, &bvec, 1, len);
1263-
if (group != NETFS_FOLIO_COPY_TO_CACHE)
1264-
__set_bit(NETFS_RREQ_UPLOAD_TO_SERVER, &wreq->flags);
1265-
ret = netfs_begin_write(wreq, true, netfs_write_trace_launder);
1266-
1267-
out_put:
1268-
folio_detach_private(folio);
1269-
netfs_put_group(group);
1270-
kfree(finfo);
1271-
netfs_put_request(wreq, false, netfs_rreq_trace_put_return);
1272-
out:
1273-
_leave(" = %d", ret);
1274-
return ret;
1275-
}
1276-
EXPORT_SYMBOL(netfs_launder_folio);

fs/netfs/main.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ static const char *netfs_origins[nr__netfs_io_origin] = {
3434
[NETFS_COPY_TO_CACHE] = "CC",
3535
[NETFS_WRITEBACK] = "WB",
3636
[NETFS_WRITETHROUGH] = "WT",
37-
[NETFS_LAUNDER_WRITE] = "LW",
3837
[NETFS_UNBUFFERED_WRITE] = "UW",
3938
[NETFS_DIO_READ] = "DR",
4039
[NETFS_DIO_WRITE] = "DW",

include/linux/netfs.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,6 @@ enum netfs_io_origin {
172172
NETFS_COPY_TO_CACHE, /* This write is to copy a read to the cache */
173173
NETFS_WRITEBACK, /* This write was triggered by writepages */
174174
NETFS_WRITETHROUGH, /* This write was made by netfs_perform_write() */
175-
NETFS_LAUNDER_WRITE, /* This is triggered by ->launder_folio() */
176175
NETFS_UNBUFFERED_WRITE, /* This is an unbuffered write */
177176
NETFS_DIO_READ, /* This is a direct I/O read */
178177
NETFS_DIO_WRITE, /* This is a direct I/O write */
@@ -352,7 +351,6 @@ int netfs_unpin_writeback(struct inode *inode, struct writeback_control *wbc);
352351
void netfs_clear_inode_writeback(struct inode *inode, const void *aux);
353352
void netfs_invalidate_folio(struct folio *folio, size_t offset, size_t length);
354353
bool netfs_release_folio(struct folio *folio, gfp_t gfp);
355-
int netfs_launder_folio(struct folio *folio);
356354

357355
/* VMA operations API. */
358356
vm_fault_t netfs_page_mkwrite(struct vm_fault *vmf, struct netfs_group *netfs_group);

include/trace/events/netfs.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
#define netfs_write_traces \
2727
EM(netfs_write_trace_copy_to_cache, "COPY2CACH") \
2828
EM(netfs_write_trace_dio_write, "DIO-WRITE") \
29-
EM(netfs_write_trace_launder, "LAUNDER ") \
3029
EM(netfs_write_trace_unbuffered_write, "UNB-WRITE") \
3130
EM(netfs_write_trace_writeback, "WRITEBACK") \
3231
E_(netfs_write_trace_writethrough, "WRITETHRU")
@@ -38,7 +37,6 @@
3837
EM(NETFS_COPY_TO_CACHE, "CC") \
3938
EM(NETFS_WRITEBACK, "WB") \
4039
EM(NETFS_WRITETHROUGH, "WT") \
41-
EM(NETFS_LAUNDER_WRITE, "LW") \
4240
EM(NETFS_UNBUFFERED_WRITE, "UW") \
4341
EM(NETFS_DIO_READ, "DR") \
4442
E_(NETFS_DIO_WRITE, "DW")
@@ -135,7 +133,6 @@
135133
EM(netfs_folio_trace_end_copy, "end-copy") \
136134
EM(netfs_folio_trace_filled_gaps, "filled-gaps") \
137135
EM(netfs_folio_trace_kill, "kill") \
138-
EM(netfs_folio_trace_launder, "launder") \
139136
EM(netfs_folio_trace_mkwrite, "mkwrite") \
140137
EM(netfs_folio_trace_mkwrite_plus, "mkwrite+") \
141138
EM(netfs_folio_trace_read_gaps, "read-gaps") \

0 commit comments

Comments
 (0)