Print this page
NEX-3046 hsfs asserts instead of handling getpage beyond EOF
Reviewed by: Kevin Crowe <kevin.crowe@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Reviewed by: Marcel Telka <marcel.telka@nexenta.com>
Revert "NEX-5659 hsfs asserts instead of handling getpage beyond EOF"
This reverts commit c4b53e5f3fdfec5d117f9719bc4b77581f318442.
NEX-5659 hsfs asserts instead of handling getpage beyond EOF
Reviewed by: Kevin Crowe <kevin.crowe@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Reviewed by: Marcel Telka <marcel.telka@nexenta.com>
NEX-2974 cannot exec from hsfs since illumos 5405

*** 20,30 **** */ /* * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. ! * Copyright 2015 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2017 by Delphix. All rights reserved. */ /* * Vnode operations for the High Sierra filesystem --- 20,30 ---- */ /* * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. ! * Copyright 2016 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2017 by Delphix. All rights reserved. */ /* * Vnode operations for the High Sierra filesystem
*** 1159,1168 **** --- 1159,1170 ---- * Need to really do disk IO to get the page. */ if (!calcdone) { extension += hp->hs_ra_bytes; + len = (extension != 0) ? extension : PAGESIZE; + /* * Some cd writers don't write sectors that aren't * used. Also, there's no point in reading sectors * we'll never look at. So, if we're asked to go * beyond the end of a file, truncate to the length
*** 1169,1188 **** * of that file. * * Additionally, this behaviour is required by section * 6.4.5 of ISO 9660:1988(E). */ ! len = MIN(extension ? extension : PAGESIZE, ! filsiz - off); - /* A little paranoia. */ - ASSERT(len > 0); - /* * After all that, make sure we're asking for things ! * in units that bdev_strategy() will understand ! * (see bug 4202551). */ len = roundup(len, DEV_BSIZE); calcdone = 1; } --- 1171,1186 ---- * of that file. * * Additionally, this behaviour is required by section * 6.4.5 of ISO 9660:1988(E). */ ! if (off < filsiz && off + len > filsiz) ! len = filsiz - off; /* * After all that, make sure we're asking for things ! * in units that bdev_strategy() will understand. */ len = roundup(len, DEV_BSIZE); calcdone = 1; }