aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/orangefs/file.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/fs/orangefs/file.c b/fs/orangefs/file.c
index db0b52187cbc..a5a2fe76568f 100644
--- a/fs/orangefs/file.c
+++ b/fs/orangefs/file.c
@@ -528,18 +528,19 @@ static long orangefs_ioctl(struct file *file, unsigned int cmd, unsigned long ar
528 return ret; 528 return ret;
529} 529}
530 530
531static int orangefs_fault(struct vm_fault *vmf) 531static vm_fault_t orangefs_fault(struct vm_fault *vmf)
532{ 532{
533 struct file *file = vmf->vma->vm_file; 533 struct file *file = vmf->vma->vm_file;
534 int rc; 534 int ret;
535 rc = orangefs_inode_getattr(file->f_mapping->host, 0, 1, 535
536 ret = orangefs_inode_getattr(file->f_mapping->host, 0, 1,
536 STATX_SIZE); 537 STATX_SIZE);
537 if (rc == -ESTALE) 538 if (ret == -ESTALE)
538 rc = -EIO; 539 ret = -EIO;
539 if (rc) { 540 if (ret) {
540 gossip_err("%s: orangefs_inode_getattr failed, " 541 gossip_err("%s: orangefs_inode_getattr failed, ret:%d:.\n",
541 "rc:%d:.\n", __func__, rc); 542 __func__, ret);
542 return rc; 543 return VM_FAULT_SIGBUS;
543 } 544 }
544 return filemap_fault(vmf); 545 return filemap_fault(vmf);
545} 546}