loop.c (b0bd158dd630bd47640e0e418c062cda1e0da5ad) loop.c (0a6ed1b5ff6757f11ad2d57906ceb40488a5ee52)
1/*
2 * linux/drivers/block/loop.c
3 *
4 * Written by Theodore Ts'o, 3/29/93
5 *
6 * Copyright 1993 by Theodore Ts'o. Redistribution of this file is
7 * permitted under the GNU General Public License.
8 *

--- 231 unchanged lines hidden (view full) ---

240{
241 struct block_device *bdev = lo->lo_device;
242
243 bd_set_size(bdev, size << SECTOR_SHIFT);
244
245 set_capacity_revalidate_and_notify(lo->lo_disk, size, false);
246}
247
1/*
2 * linux/drivers/block/loop.c
3 *
4 * Written by Theodore Ts'o, 3/29/93
5 *
6 * Copyright 1993 by Theodore Ts'o. Redistribution of this file is
7 * permitted under the GNU General Public License.
8 *

--- 231 unchanged lines hidden (view full) ---

240{
241 struct block_device *bdev = lo->lo_device;
242
243 bd_set_size(bdev, size << SECTOR_SHIFT);
244
245 set_capacity_revalidate_and_notify(lo->lo_disk, size, false);
246}
247
248static void
249figure_loop_size(struct loop_device *lo, loff_t offset, loff_t sizelimit)
250{
251 loff_t size = get_size(offset, sizelimit, lo->lo_backing_file);
252
253 loop_set_size(lo, size);
254}
255
256static inline int
257lo_do_transfer(struct loop_device *lo, int cmd,
258 struct page *rpage, unsigned roffs,
259 struct page *lpage, unsigned loffs,
260 int size, sector_t rblock)
261{
262 int ret;
263

--- 1265 unchanged lines hidden (view full) ---

1529 if (!err && copy_to_user(arg, &info64, sizeof(info64)))
1530 err = -EFAULT;
1531
1532 return err;
1533}
1534
1535static int loop_set_capacity(struct loop_device *lo)
1536{
248static inline int
249lo_do_transfer(struct loop_device *lo, int cmd,
250 struct page *rpage, unsigned roffs,
251 struct page *lpage, unsigned loffs,
252 int size, sector_t rblock)
253{
254 int ret;
255

--- 1265 unchanged lines hidden (view full) ---

1521 if (!err && copy_to_user(arg, &info64, sizeof(info64)))
1522 err = -EFAULT;
1523
1524 return err;
1525}
1526
1527static int loop_set_capacity(struct loop_device *lo)
1528{
1529 loff_t size;
1530
1537 if (unlikely(lo->lo_state != Lo_bound))
1538 return -ENXIO;
1539
1531 if (unlikely(lo->lo_state != Lo_bound))
1532 return -ENXIO;
1533
1540 figure_loop_size(lo, lo->lo_offset, lo->lo_sizelimit);
1534 size = get_loop_size(lo, lo->lo_backing_file);
1535 loop_set_size(lo, size);
1541
1542 return 0;
1543}
1544
1545static int loop_set_dio(struct loop_device *lo, unsigned long arg)
1546{
1547 int error = -ENXIO;
1548 if (lo->lo_state != Lo_bound)

--- 813 unchanged lines hidden ---
1536
1537 return 0;
1538}
1539
1540static int loop_set_dio(struct loop_device *lo, unsigned long arg)
1541{
1542 int error = -ENXIO;
1543 if (lo->lo_state != Lo_bound)

--- 813 unchanged lines hidden ---