2019-02-06 |
fs: let truncate take a loff_t argument
...
loff_t is the correct type for file sizes. Use it to allow to truncate
to sizes bigger than 32bit.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 6 Feb 2019
|
2019-02-04 |
fs: devfs: Change .lseek callbacks to return 'int'
...
Returning requested offset from .lseek() callback doesn't really give
us any new information while bringing unnecessary
complications. Change all .lseek() types (both in struct struct
cdev_operations and in struct fs_driver_d) to return 'int' and adjust
the rest of the codebase accordingly.
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Andrey Smirnov
authored
on 29 Jan 2019
Sascha Hauer
committed
on 4 Feb 2019
|
2019-01-29 |
devfs: Drop dev_lseek_default()
...
Only the following cdevs do not declare an .lseek() operation:
- Console devices in common/console.c
- Firmware framework in common/firmware.c
- JTAG driver in drivers/misc/jtag.c
- UBI in drivers/mtd/ubi/barebox.c
Of those four, first two are marked DEVFS_IS_CHARACTER_DEV and
implement only .write() operation and the last two don't implement
anything but .ioctl(). While there's probably no meaningful way to use
lseek() against any of those devices, there doesn't seem to be any
harm in allowing it either.
Change devfs_lseek() to ignore absense of .lseek() callback and drop
dev_lseek_default() and all references to it in the codebase.
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Andrey Smirnov
authored
on 29 Jan 2019
Sascha Hauer
committed
on 29 Jan 2019
|
fs: Update FILE position in lseek()
...
Instead on relying on driver callbacks to update 'pos' in FILE, do it
as a part of lseek() code. This allows us to drop a bit of repeating
code as well as making lseek() implementation consistent with write()
and read().
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Andrey Smirnov
authored
on 29 Jan 2019
Sascha Hauer
committed
on 29 Jan 2019
|
devfs: Fix incorrect error check for cdev->ops->lseek()
...
Cdev->ops->lseek() will either return a negative error code on failure
or requested position on success. In order to properly check for
errors we need to test if the return value is negative, not just that
it's not -1.
Returning ret - cdev->offset, doesn't appear to be correct either,
even if ret is -1, since on failure this will lead us to return (-1 -
cdev->offset). Simplify that part by just returning 'pos', which is
what we'd end up returning on success in original code as well.
Third, make sure to return -ENOSYS, when no .lseek() callback is
provided.
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Andrey Smirnov
authored
on 29 Jan 2019
Sascha Hauer
committed
on 29 Jan 2019
|
2018-11-12 |
fs: devfs: Make locally used function static
...
devfs_iterate() is only used locally, so make it static.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 12 Nov 2018
|
2018-10-29 |
fs: devfs: implement d_revalidate hook
...
The files in devfs can change withouut the fs layer noticing, so we
have to revalidate dentries before using them.
A failure could be triggered with:
ls /dev/nand0.root.ubi; ubiattach /dev/nand0.root; ls /dev/nand0.root.ubi
The first 'ls' would create a dentry for nand0.root.ubi with no inode
associated since it does not yet exist. 'ubiattach' then creates that
file, but the second 'ls' does not show it since the dentry is not
revalidated and thus no inode is added to that dentry. This patch
fixes this and also the opposite case when a file is removed (for
example with ubidetach).
Reported-by: Ladislav Michl <ladis@linux-mips.org>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 29 Oct 2018
|
2018-09-17 |
fs: devfs: fix r/w permissions
...
The real r/w flags were lost in the switch to dentry cache
implementation. Restore them.
Fixes: 9137c41915 ("fs: devfs: Switch to dentry cache implementation")
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 17 Sep 2018
|
fs: devfs: Create device files as character devices
...
Without this files in /dev/ appear as regular files. copy_file()
stumbles upon this as it tries a truncate() on that files which
then fails. Create the files as character devices so that copy_file()
works as expected.
Fixes: 9137c41915 ("fs: devfs: Switch to dentry cache implementation")
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Tested-by: Giorgio Dal Molin <giorgio.nicole@arcor.de>
Sascha Hauer
committed
on 17 Sep 2018
|
2018-07-11 |
fs: devfs: Switch to dentry cache implementation
...
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 11 Jul 2018
|
2017-01-11 |
devfs: Add optional truncate callback for device files
...
Not all device files have trivial fix device sizes like static
ubi volumes. Here the device file size equals the image size it contains.
Signed-off-by: Teresa Remmet <t.remmet@phytec.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Teresa Remmet
authored
on 25 Nov 2016
Sascha Hauer
committed
on 11 Jan 2017
|
2016-02-09 |
mtd: Fix erasing of devices >4GiB
...
When a device >4GiB is erased, not only the offset can be bigger
than 4GiB, but also the size. This happens with the simplest command
to erase a device: erase /dev/nand0. Make the size argument a 64bit
type to make this work.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 9 Feb 2016
|
2016-01-08 |
devfs: Add symlink support
...
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 8 Jan 2016
|
2015-10-15 |
fs: devfs: Allow mounting only on /dev/
...
We have places in the code where we assume that devfs is mounted on
/dev/, so enforce this path to avoid surprises.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 15 Oct 2015
|
2015-03-09 |
fs: rename inode member of struct filep to priv
...
Because that's what it is. 'inode' will become confusing
once we support real inodes.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 9 Mar 2015
|
2014-10-08 |
fs: store pointer to fsdev instead of dev in struct filep
...
The struct device_d * in struct filep is never of interest, instead
it is always converted to a struct fs_device_d *, so simplify the code
by storing the struct fs_device_d * directly.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 8 Oct 2014
|
2012-09-17 |
Treewide: remove address of the Free Software Foundation
...
The FSF address has changed in the past. Instead of updating it
each time the address changes, just drop it completely treewide.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 17 Sep 2012
|
2012-07-04 |
fs: fix standard zero, full devices
...
The standard devices are currently broken since they have
the size ~0. As now files use loff_t as file size which is a signed
type the read implementation gets confused and now returns -1.
The current implementation also has the (somewhat theorical) problem
that we do not have real streaming devices, so /dev/zero went out
of zeroes after reading 4GB (or now LLONG_MAX).
This patch introduces a new cdev flag DEVFS_IS_CHARACTER_DEV and a new
file size flag FILE_SIZE_STREAM which makes it possible to create
real stream devices instead.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 4 Jul 2012
|
2012-07-02 |
Merge branch 'for-next/resource-size'
...
Conflicts:
drivers/base/resource.c
fs/fs.c
Sascha Hauer
committed
on 2 Jul 2012
|
Merge branch 'for-next/misc'
Sascha Hauer
committed
on 2 Jul 2012
|
2012-07-01 |
resource: store 'end' instead of 'size' in struct resource
...
Storing the size instead of the resource end in struct resource was
a mistake. 'size' ranges from 0 to UINT[32|64]_MAX + 1 which obviously
leads to problems. 'end' on the other hand will never exceed
UINT[32|64]_MAX. Also this way we can express a iomem region covering
the whole address space.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 1 Jul 2012
|
2012-06-30 |
make cdev 64bit capable
...
Next step to 64bit support: Make cdev size a 64bit type.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 30 Jun 2012
|
use loff_t for file offsets
...
This is a first step for 64bit file support: Make the file sizes/offsets
64bit.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 30 Jun 2012
|
fs/devfs.c: disallow write and erase if a partition is read-only
...
Signed-off-by: Jan Luebbe <jlu@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Jan Luebbe
authored
on 25 Jun 2012
Sascha Hauer
committed
on 30 Jun 2012
|
2012-06-07 |
devfs: don't erase past the end of the partition
...
"erase /dev/myflash0.mypart 0xf0000+0xf0000" could erase past
the end of the partition.
Signed-off-by: Johannes Stezenbach <js@sig21.net>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Johannes Stezenbach
authored
on 6 Jun 2012
Sascha Hauer
committed
on 7 Jun 2012
|
2012-02-25 |
fs: get fs device using container_of
...
This reduces the usage of dev->type_data.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 25 Feb 2012
|
2011-12-15 |
cdev: pass flags to open function
...
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 15 Dec 2011
|
2011-07-29 |
fs: switch to resource
...
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Jean-Christophe PLAGNIOL-VILLARD
committed
on 29 Jul 2011
|
2011-04-11 |
devfs: factor out core devfs functionality
...
This makes it possible to compile without devfs. devfs_create/devfs_remove
is used by drivers and thus must still be present even without devfs support.
Also, this patch adds cdev_open/cdev_close/cdev_flush/cdev_ioctl calls to
work with devices without using the file api.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 11 Apr 2011
|
fs: implement flush function
...
Once we have caching in file functions we need a way to sync
the the underlying devices.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 11 Apr 2011
|