summaryrefslogtreecommitdiffstats
path: root/fs
Commit message (Collapse)AuthorAgeFilesLines
* Gfs2: fail if we try to use hole punchJosef Bacik2011-01-121-0/+4
| | | | | | | | | Gfs2 doesn't have the ability to punch holes yet, so make sure we return EOPNOTSUPP if we try to use hole punching through fallocate. This support can be added later. Thanks, Signed-off-by: Josef Bacik <josef@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* Btrfs: fail if we try to use hole punchJosef Bacik2011-01-121-0/+4
| | | | | | | | | Btrfs doesn't have the ability to punch holes yet, so make sure we return EOPNOTSUPP if we try to use hole punching through fallocate. This support can be added later. Thanks, Signed-off-by: Josef Bacik <josef@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* Ext4: fail if we try to use hole punchJosef Bacik2011-01-121-0/+4
| | | | | | | | | | Ext4 doesn't have the ability to punch holes yet, so make sure we return EOPNOTSUPP if we try to use hole punching through fallocate. This support can be added later. Thanks, Acked-by: Jan Kara <jack@suse.cz> Signed-off-by: Josef Bacik <josef@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* Ocfs2: handle hole punching via fallocate properlyJosef Bacik2011-01-121-2/+6
| | | | | | | | | | This patch just makes ocfs2 use its UNRESERVP ioctl when we get the hole punch flag in fallocate. I didn't test it, but it seems simple enough. Thanks, Acked-by: Jan Kara <jack@suse.cz> Acked-by: Joel Becker <joel.becker@oracle.com> Signed-off-by: Josef Bacik <josef@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* XFS: handle hole punching via fallocate properlyJosef Bacik2011-01-121-2/+5
| | | | | | | | | | This patch simply allows XFS to handle the hole punching flag in fallocate properly. I've tested this with a little program that does a bunch of random hole punching with FL_KEEP_SIZE and without it to make sure it does the right thing. Thanks, Signed-off-by: Josef Bacik <josef@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* fs: add hole punching to fallocateJosef Bacik2011-01-121-1/+6
| | | | | | | | | | | | Hole punching has already been implemented by XFS and OCFS2, and has the potential to be implemented on both BTRFS and EXT4 so we need a generic way to get to this feature. The simplest way in my mind is to add FALLOC_FL_PUNCH_HOLE to fallocate() since it already looks like the normal fallocate() operation. I've tested this patch with XFS and BTRFS to make sure XFS did what it's supposed to do and that BTRFS failed like it was supposed to. Thank you, Signed-off-by: Josef Bacik <josef@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* vfs: pass struct file to do_truncate on O_TRUNC opens (try #2)Jeff Layton2011-01-121-3/+4
| | | | | | | | | | | | | | | | | | | When a file is opened with O_TRUNC, the truncate processing is handled by handle_truncate(). This function however doesn't receive any info about the newly instantiated filp, and therefore can't pass that info along so that the setattr can use it. This makes NFSv4 misbehave. The client does an open and gets a valid stateid, and then doesn't use that stateid on the subsequent truncate. It uses the zero-stateid instead. Most servers ignore this fact and just do the truncate anyway, but some don't like it (notably, RHEL4). It seems more correct that since we have a fully instantiated file at the time that handle_truncate is called, that we pass that along so that the truncate operation can properly use it. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* fix signedness mess in rw_verify_area() on 64bit architecturesAl Viro2011-01-121-16/+11
| | | | | | ... and clean the unsigned-f_pos code, while we are at it. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* fs: fix kernel-doc for dcache::prepend_pathRandy Dunlap2011-01-121-2/+1
| | | | | | | | | | Fix function kernel-doc warning for prepend_path(): Warning(fs/dcache.c:1924): missing initial short description on line: Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Cc: Alexander Viro <viro@zeniv.linux.org.uk> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* fs: fix kernel-doc for dcache::d_validateRandy Dunlap2011-01-121-1/+1
| | | | | | | | | | | Fix function parameter kernel-doc for d_validate(): Warning(fs/dcache.c:1495): No description found for parameter 'parent' Warning(fs/dcache.c:1495): Excess function parameter 'dparent' description in 'd_validate' Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Cc: Alexander Viro <viro@zeniv.linux.org.uk> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* sanitize ecryptfs ->mount()Al Viro2011-01-122-88/+68
| | | | | | | kill ecryptfs_read_super(), reorder code allowing to use normal d_alloc_root() instead of opencoding it. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* switch afsAl Viro2011-01-123-3/+3
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* move internal-only parts of ncpfs headers to fs/ncpfsAl Viro2011-01-1214-22/+313
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* switch ncpfsAl Viro2011-01-122-12/+5
| | | | | | merge dentry_operations for root and non-root Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* switch 9pAl Viro2011-01-124-10/+6
| | | | | | | | here we actually *want* ->d_op for root; setting it allows to get rid of kludge in v9fs_kill_super() since now we have proper ->d_release() for root and don't need to call it manually. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* pass default dentry_operations to mount_pseudo()Al Viro2011-01-124-14/+17
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* switch hostfsAl Viro2011-01-121-1/+1
| | | | | | ->d_delete() doesn't matter for s_root anyway Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* switch affsAl Viro2011-01-123-3/+7
| | | | | | either d_op instance would work for root, actually... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* switch configfsAl Viro2011-01-123-5/+3
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* take coda-private headers out of include/linuxAl Viro2011-01-1213-24/+198
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* switch codaAl Viro2011-01-122-3/+2
| | | | | | | Coda ->d_revalidate() actually checks for root, ->d_delete() is irrelevant. So we can use the same d_op for all coda dentries Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* switch hpfsAl Viro2011-01-124-9/+3
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* switch btrfs, close racesAl Viro2011-01-123-12/+3
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* switch ocfs2, close racesAl Viro2011-01-123-10/+2
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* switch gfs2, close racesAl Viro2011-01-123-14/+3
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* switch cifsAl Viro2011-01-125-41/+7
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* switch nfs to ->s_d_opAl Viro2011-01-123-10/+1
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* switch adfsAl Viro2011-01-122-3/+2
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* switch hfsplusAl Viro2011-01-122-2/+1
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* switch hfsAl Viro2011-01-122-4/+1
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* minixfs: kill dead codeAl Viro2011-01-121-2/+0
| | | | | | ->d_op of root stays NULL these days on minixfs Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* switch sysvAl Viro2011-01-122-5/+4
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* switch fuseAl Viro2011-01-122-7/+4
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* switch jfs to ->s_d_op, close exportfs racesAl Viro2011-01-122-12/+4
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* switch fat to ->s_d_op, close exportfs races thereAl Viro2011-01-124-45/+25
| | | | | | | don't bother with lock_super() in fat_fill_super() callers, while we are at it - there won't be any concurrency anyway. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* fix isofs d_op handlingAl Viro2011-01-122-8/+7
| | | | | | switch to ->s_d_op; d_obtain_alias() will DTRT now Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* per-superblock default ->d_opAl Viro2011-01-121-0/+4
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* Merge branch 'nfs-for-2.6.38' of ↵Linus Torvalds2011-01-1139-3814/+7414
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.linux-nfs.org/projects/trondmy/nfs-2.6 * 'nfs-for-2.6.38' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (89 commits) NFS fix the setting of exchange id flag NFS: Don't use vm_map_ram() in readdir NFSv4: Ensure continued open and lockowner name uniqueness NFS: Move cl_delegations to the nfs_server struct NFS: Introduce nfs_detach_delegations() NFS: Move cl_state_owners and related fields to the nfs_server struct NFS: Allow walking nfs_client.cl_superblocks list outside client.c pnfs: layout roc code pnfs: update nfs4_callback_recallany to handle layouts pnfs: add CB_LAYOUTRECALL handling pnfs: CB_LAYOUTRECALL xdr code pnfs: change lo refcounting to atomic_t pnfs: check that partial LAYOUTGET return is ignored pnfs: add layout to client list before sending rpc pnfs: serialize LAYOUTGET(openstateid) pnfs: layoutget rpc code cleanup pnfs: change how lsegs are removed from layout list pnfs: change layout state seqlock to a spinlock pnfs: add prefix to struct pnfs_layout_hdr fields pnfs: add prefix to struct pnfs_layout_segment fields ...
| * NFS fix the setting of exchange id flagAndy Adamson2011-01-111-4/+21
| | | | | | | | | | | | | | | | | | | | | | Indicate support for referrals. Do not set any PNFS roles. Check the flags returned by the server for validity. Do not use exchange flags from an old client ID instance when recovering a client ID. Update the EXCHID4_FLAG_XXX set to RFC 5661. Signed-off-by: Andy Adamson <andros@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
| * Merge branch 'bugfixes' into nfs-for-2.6.38Trond Myklebust2011-01-1022-117/+197
| |\ | | | | | | | | | | | | | | | | | | Conflicts: fs/nfs/nfs2xdr.c fs/nfs/nfs3xdr.c fs/nfs/nfs4xdr.c
| | * NFS: Don't use vm_map_ram() in readdirTrond Myklebust2011-01-104-41/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | vm_map_ram() is not available on NOMMU platforms, and causes trouble on incoherrent architectures such as ARM when we access the page data through both the direct and the virtual mapping. The alternative is to use the direct mapping to access page data for the case when we are not crossing a page boundary, but to copy the data into a linear scratch buffer when we are accessing data that spans page boundaries. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> Tested-by: Marc Kleine-Budde <mkl@pengutronix.de> Cc: stable@kernel.org [2.6.37]
| * | NFSv4: Ensure continued open and lockowner name uniquenessTrond Myklebust2011-01-062-6/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to enable migration support, we will want to move some of the structures that are subject to migration into the struct nfs_server. In particular, if we are to move the state_owner and state_owner_id to being a per-filesystem structure, then we should label the resulting open/lock owners with a per-filesytem label to ensure global uniqueness. This patch does so by adding the super block s_dev to the open/lock owner name. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
| * | NFS: Move cl_delegations to the nfs_server structChuck Lever2011-01-064-92/+250
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Delegations are per-inode, not per-nfs_client. When a server file system is migrated, delegations on the client must be moved from the source to the destination nfs_server. Make it easier to manage a mount point's delegation list across a migration event by moving the list to the nfs_server struct. Clean up: I added documenting comments to public functions I changed in this patch. For consistency I added comments to all the other public functions in fs/nfs/delegation.c. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
| * | NFS: Introduce nfs_detach_delegations()Chuck Lever2011-01-061-21/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clean up: Refactor code that takes clp->cl_lock and calls nfs_detach_delegations_locked() into its own function. While we're changing the call sites, get rid of the second parameter and the logic in nfs_detach_delegations_locked() that uses it, since callers always set that parameter of nfs_detach_delegations_locked() to NULL. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
| * | NFS: Move cl_state_owners and related fields to the nfs_server structChuck Lever2011-01-062-72/+181
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NFSv4 migration needs to reassociate state owners from the source to the destination nfs_server data structures. To make that easier, move the cl_state_owners field to the nfs_server struct. cl_openowner_id and cl_lockowner_id accompany this move, as they are used in conjunction with cl_state_owners. The cl_lock field in the parent nfs_client continues to protect all three of these fields. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
| * | NFS: Allow walking nfs_client.cl_superblocks list outside client.cChuck Lever2011-01-062-21/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We're about to move some fields from struct nfs_client to struct nfs_server. There is a many-to-one relationship between nfs_servers and nfs_clients. After these fields are moved to the nfs_server struct, to visit all of the data in these fields that is owned by one nfs_client, code will need to visit each nfs_server on the cl_superblocks list for that nfs_client. To serialize changes to the cl_superblocks list during these little expeditions, protect the list with RCU. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
| * | pnfs: layout roc codeFred Isaman2011-01-066-6/+151
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A layout can request return-on-close. How this interacts with the forgetful model of never sending LAYOUTRETURNS is a bit ambiguous. We forget any layouts marked roc, and wait for them to be completely forgotten before continuing with the close. In addition, to compensate for races with any inflight LAYOUTGETs, and the fact that we do not get any layout stateid back from the server, we set the barrier to the worst case scenario of current_seqid + number of outstanding LAYOUTGETS. Signed-off-by: Fred Isaman <iisaman@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
| * | pnfs: update nfs4_callback_recallany to handle layoutsAlexandros Batsakis2011-01-062-3/+34
| | | | | | | | | | | | | | | | | | | | | | | | While here, update the code a bit. Signed-off-by: Alexandros Batsakis <batsakis@netapp.com> Signed-off-by: Fred Isaman <iisaman@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
| * | pnfs: add CB_LAYOUTRECALL handlingFred Isaman2011-01-064-20/+194
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the heart of the wave 2 submission. Add the code to trigger drain and forget of any afected layouts. In addition, we set a "barrier", below which any LAYOUTGET reply is ignored. This is to compensate for the fact that we do not wait for outstanding LAYOUTGETs to complete as per section 12.5.5.2.1 of RFC 5661. Signed-off-by: Fred Isaman <iisaman@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
| * | pnfs: CB_LAYOUTRECALL xdr codeFred Isaman2011-01-063-1/+93
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the xdr decoding for CB_LAYOUTRECALL. Signed-off-by: Alexandros Batsakis <batsakis@netapp.com> Signed-off-by: Dean Hildebrand <dhildeb@us.ibm.com> Signed-off-by: Marc Eshel <eshel@almaden.ibm.com> Signed-off-by: Andy Adamson <andros@netapp.com> Signed-off-by: Benny Halevy <bhalevy@panasas.com> Signed-off-by: Fred Isaman <iisaman@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
OpenPOWER on IntegriCloud