[pnfs] [PATCH 3/4] [SQUASHME] pnfs: prevent offset overflow in _pnfs_do_flush
Benny Halevy
bhalevy.lists at gmail.com
Wed May 14 13:39:02 EDT 2008
wb_index needs to be typecasted to u64 or loff_t before shifting left
with PAGE_CACHE_SHIFT to prevent overflow on 32-bit architectures
since pgoff_t is unsigned long.
Signed-off-by: Benny Halevy <bhalevy at panasas.com>
---
fs/nfs/pnfs.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c
index f731b82..d76076c 100644
--- a/fs/nfs/pnfs.c
+++ b/fs/nfs/pnfs.c
@@ -1649,7 +1649,7 @@ int _pnfs_do_flush(struct inode *inode, struct nfs_page *req,
{
struct nfs_server *nfss = NFS_SERVER(inode);
struct pnfs_layout_segment *lseg;
- loff_t pos = (req->wb_index << PAGE_CACHE_SHIFT) + req->wb_offset;
+ loff_t pos = ((loff_t)req->wb_index << PAGE_CACHE_SHIFT) + req->wb_offset;
int status = 0;
lseg = pnfs_find_get_lseg(inode, pos, req->wb_bytes, IOMODE_RW);
--
1.5.3.3
More information about the pNFS
mailing list