Merge tag 'perf-tools-fixes-for-v6.3-1-2023-03-09' of git://git.kernel.org/pub/scm...
[linux-2.6-microblaze.git] / mm / fadvise.c
index bf04fec..fb7c5f4 100644 (file)
@@ -80,7 +80,7 @@ int generic_fadvise(struct file *file, loff_t offset, loff_t len, int advice)
        case POSIX_FADV_NORMAL:
                file->f_ra.ra_pages = bdi->ra_pages;
                spin_lock(&file->f_lock);
-               file->f_mode &= ~FMODE_RANDOM;
+               file->f_mode &= ~(FMODE_RANDOM | FMODE_NOREUSE);
                spin_unlock(&file->f_lock);
                break;
        case POSIX_FADV_RANDOM:
@@ -107,6 +107,9 @@ int generic_fadvise(struct file *file, loff_t offset, loff_t len, int advice)
                force_page_cache_readahead(mapping, file, start_index, nrpages);
                break;
        case POSIX_FADV_NOREUSE:
+               spin_lock(&file->f_lock);
+               file->f_mode |= FMODE_NOREUSE;
+               spin_unlock(&file->f_lock);
                break;
        case POSIX_FADV_DONTNEED:
                __filemap_fdatawrite_range(mapping, offset, endbyte,