diff options
Diffstat (limited to 'fs/netfs/internal.h')
| -rw-r--r-- | fs/netfs/internal.h | 26 | 
1 files changed, 25 insertions, 1 deletions
diff --git a/fs/netfs/internal.h b/fs/netfs/internal.h index e2ee9183392b..d4f16fefd965 100644 --- a/fs/netfs/internal.h +++ b/fs/netfs/internal.h @@ -28,6 +28,12 @@ int netfs_prefetch_for_write(struct file *file, struct folio *folio,  			     size_t offset, size_t len);  /* + * buffered_write.c + */ +void netfs_update_i_size(struct netfs_inode *ctx, struct inode *inode, +			 loff_t pos, size_t copied); + +/*   * main.c   */  extern unsigned int netfs_debug; @@ -267,14 +273,32 @@ static inline void netfs_wake_rreq_flag(struct netfs_io_request *rreq,  					enum netfs_rreq_trace trace)  {  	if (test_bit(rreq_flag, &rreq->flags)) { -		trace_netfs_rreq(rreq, trace);  		clear_bit_unlock(rreq_flag, &rreq->flags);  		smp_mb__after_atomic(); /* Set flag before task state */ +		trace_netfs_rreq(rreq, trace);  		wake_up(&rreq->waitq);  	}  }  /* + * Test the NETFS_RREQ_IN_PROGRESS flag, inserting an appropriate barrier. + */ +static inline bool netfs_check_rreq_in_progress(const struct netfs_io_request *rreq) +{ +	/* Order read of flags before read of anything else, such as error. */ +	return test_bit_acquire(NETFS_RREQ_IN_PROGRESS, &rreq->flags); +} + +/* + * Test the NETFS_SREQ_IN_PROGRESS flag, inserting an appropriate barrier. + */ +static inline bool netfs_check_subreq_in_progress(const struct netfs_io_subrequest *subreq) +{ +	/* Order read of flags before read of anything else, such as error. */ +	return test_bit_acquire(NETFS_SREQ_IN_PROGRESS, &subreq->flags); +} + +/*   * fscache-cache.c   */  #ifdef CONFIG_PROC_FS  | 
