dax: improve comment about truncate race
[firefly-linux-kernel-4.4.55.git] / fs / dax.c
index 2deed64b7eea728fb3a09f3e33238c8068c8935b..c694117a706208ccb325ee2e17bc33b62e7ba624 100644 (file)
--- a/fs/dax.c
+++ b/fs/dax.c
@@ -553,7 +553,12 @@ int __dax_pmd_fault(struct vm_area_struct *vma, unsigned long address,
        if (!buffer_size_valid(&bh) || bh.b_size < PMD_SIZE)
                goto fallback;
 
-       /* Guard against a race with truncate */
+       /*
+        * If a truncate happened while we were allocating blocks, we may
+        * leave blocks allocated to the file that are beyond EOF.  We can't
+        * take i_mutex here, so just leave them hanging; they'll be freed
+        * when the file is deleted.
+        */
        size = (i_size_read(inode) + PAGE_SIZE - 1) >> PAGE_SHIFT;
        if (pgoff >= size) {
                result = VM_FAULT_SIGBUS;