OSDN Git Service

dax: remove the last BUG_ON() from fs/dax.c
authorRoss Zwisler <ross.zwisler@linux.intel.com>
Tue, 8 Nov 2016 00:32:00 +0000 (11:32 +1100)
committerDave Chinner <david@fromorbit.com>
Tue, 8 Nov 2016 00:32:00 +0000 (11:32 +1100)
Don't take down the kernel if we get an invalid 'from' and 'length'
argument pair.  Just warn once and return an error.

Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Dave Chinner <david@fromorbit.com>
fs/dax.c

index e52e754..219fa2b 100644 (file)
--- a/fs/dax.c
+++ b/fs/dax.c
@@ -1194,7 +1194,8 @@ int dax_zero_page_range(struct inode *inode, loff_t from, unsigned length,
        /* Block boundary? Nothing to do */
        if (!length)
                return 0;
-       BUG_ON((offset + length) > PAGE_SIZE);
+       if (WARN_ON_ONCE((offset + length) > PAGE_SIZE))
+               return -EINVAL;
 
        memset(&bh, 0, sizeof(bh));
        bh.b_bdev = inode->i_sb->s_bdev;