summaryrefslogtreecommitdiff
path: root/drivers/staging/lustre/lustre/llite/vvp_io.c
AgeCommit message (Collapse)Author
2014-08-30staging: lustre: llite: expand the GOTO macroJulia Lawall
The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ identifier lbl; @@ if (...) GOTO(lbl,...); +else GOTO(lbl,...); @@ identifier lbl,rc; constant c; expression e,e1; @@ if ( - e + !e ) - GOTO(lbl,\(rc\|c\)); -else GOTO(lbl,e1); + e1; +goto lbl; @@ identifier lbl,rc; constant c; expression e,e1; @@ if (e) - GOTO(lbl,e1); -else GOTO(lbl,\(rc\|c\)); + e1; +goto lbl; @@ identifier lbl; expression e,e1,e2; @@ if (e) - GOTO(lbl,e1); -else GOTO(lbl,e2); + e1; +else e2; +goto lbl; // ------------------------------------------------------------------------ @@ identifier lbl,rc; constant c; @@ - GOTO(lbl,\(rc\|c\)); + goto lbl; @@ identifier lbl; expression rc; @@ - GOTO(lbl,rc); + rc; + goto lbl; // </smpl> The rules above the line deal with the case where the goto desination is the same whether or not the the branch is taken. In that case, the goto is created in just one instance after the if. This affects only the files namei.c and llite_lib.c. Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-08-30drivers: staging: lustre: Fix space required after that ',' errorsGreg Donald
Fix checkpatch.pl space required after that ',' errors Signed-off-by: Greg Donald <gdonald@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-08-30drivers: staging: lustre: Fix space required before the open parenthesis '(' ↵Greg Donald
errors Fix checkpatch.pl space required before the open parenthesis '(' errors Signed-off-by: Greg Donald <gdonald@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-08-17staging/lustre/llite: Make sure ft_flags is validPaul Cassella
In ll_fault0, the 'fault' struct is mostly cleared before the call to cl_io_loop, but ft_flags is not reset. It is ordinarily set by the call to filemap_fault in vvp_io_kernel_fault, but if Lustre returns before calling filemap_fault, it still has the old value of ft_flags. ll_fault0 will then consume the ft_flags field. If it has the VM_FAULT_RETRY bit set, it will be used as ll_fault0() and ll_fault()'s return value. This is a problem when VM_FAULT_RETRY is in ft_flags: When fault/filemap_fault return with that flag set, they have already released the mmap semaphore, and do_page_fault does not need to release it. Incorrectly returning this flag from ll_fault means mmap_sem is not upped in the kernel's do_page_fault(). In addition to clearing ft_flags, this patch does not use it unless it is valid. It's potentially misleading to return ft_flags in "fault_ret" if ft_flags has not been set by filemap_fault. This adds clarity, but does not change the current behavior: When not valid, ft_flags is replaced by fault_ret, which is zero, as is ft_flags when not set by filemap_fault. Signed-off-by: Patrick Farrell <paf@cray.com> Reviewed-on: http://review.whamcloud.com/10956 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-5291 Reviewed-by: Bobi Jam <bobijam@gmail.com> Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com> Signed-off-by: Oleg Drokin <oleg.drokin@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-07-11staging: lustre: llite: remove ccflags from MakefileGreg Kroah-Hartman
Fix up the relative paths in the .c files to properly build with the Makefile change. Cc: Andreas Dilger <andreas.dilger@intel.com> Cc: Oleg Drokin <oleg.drokin@intel.com> Cc: hpdd-discuss <hpdd-discuss@lists.01.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging/lustre/llite: fix a flag bug of vvp_io_kernel_fault()Li Xi
After vvp_io_kernel_fault() locked the page, it should set VM_FAULT_LOCKED. Signed-off-by: Li Xi <lixi@ddn.com> Reviewed-on: http://review.whamcloud.com/10740 Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com> Reviewed-by: Emoly Liu <emoly.liu@intel.com> Signed-off-by: Oleg Drokin <oleg.drokin@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging/lustre/vvp: release mmap_sem in error casePatrick Farrell
The mmap_sem is downed in vvp_mmap_locks, but in case of error from cl_io_lock_alloc_add, it is not upped. Credit to Paul Casella at Cray for finding this. Signed-off-by: Patrick Farrell <paf@cray.com> Reviewed-on: http://review.whamcloud.com/10741 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-5221 Reviewed-by: Andreas Dilger <andreas.dilger@intel.com> Signed-off-by: Oleg Drokin <oleg.drokin@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-12Merge branch 'for-linus' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull vfs updates from Al Viro: "This the bunch that sat in -next + lock_parent() fix. This is the minimal set; there's more pending stuff. In particular, I really hope to get acct.c fixes merged this cycle - we need that to deal sanely with delayed-mntput stuff. In the next pile, hopefully - that series is fairly short and localized (kernel/acct.c, fs/super.c and fs/namespace.c). In this pile: more iov_iter work. Most of prereqs for ->splice_write with sane locking order are there and Kent's dio rewrite would also fit nicely on top of this pile" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (70 commits) lock_parent: don't step on stale ->d_parent of all-but-freed one kill generic_file_splice_write() ceph: switch to iter_file_splice_write() shmem: switch to iter_file_splice_write() nfs: switch to iter_splice_write_file() fs/splice.c: remove unneeded exports ocfs2: switch to iter_file_splice_write() ->splice_write() via ->write_iter() bio_vec-backed iov_iter optimize copy_page_{to,from}_iter() bury generic_file_aio_{read,write} lustre: get rid of messing with iovecs ceph: switch to ->write_iter() ceph_sync_direct_write: stop poking into iov_iter guts ceph_sync_read: stop poking into iov_iter guts new helper: copy_page_from_iter() fuse: switch to ->write_iter() btrfs: switch to ->write_iter() ocfs2: switch to ->write_iter() xfs: switch to ->write_iter() ...
2014-05-06lustre: get rid of messing with iovecsAl Viro
* switch to ->read_iter/->write_iter * keep a pointer to iov_iter instead of iov/nr_segs * do not modify iovecs; use iov_iter_truncate()/iov_iter_advance() and a new primitive - iov_iter_reexpand() (expand previously truncated iterator) istead. * (racy) check for lustre VMAs intersecting with iovecs kept for now as for_each_iov() loop. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-27staging/lustre/llite: remove dead codeJohn L. Hammond
In llite remove unused declarations, parameters, types, and unused, get-only, or set-only structure members. Add static and const qualifiers to declarations where possible. Signed-off-by: John L. Hammond <john.hammond@intel.com> Reviewed-on: http://review.whamcloud.com/9767 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-2675 Reviewed-by: Lai Siyao <lai.siyao@intel.com> Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com> Signed-off-by: Oleg Drokin <oleg.drokin@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-04-27staging/lustre/llite: access layout version under a lockJinshan Xiong
We used to access layout version under the protection of ldlm lock, this introduces extra overhead for dlm lock matching. In this patch, lli_layout_lock is introduced to access the layout version. Also, when a layout lock is losing, we should tear down mmap of the correspoding inode to avoid stale data accessing in the future. This is part of technical verification of replication. Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com> Reviewed-on: http://review.whamcloud.com/8689 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-3254 Reviewed-by: Lai Siyao <lai.siyao@intel.com> Reviewed-by: Bobi Jam <bobijam@gmail.com> Signed-off-by: Oleg Drokin <oleg.drokin@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-08staging: luster: Fix typo in lustre/lliteMasanari Iida
Fix spelling typo in lustre/lustre/llite Signed-off-by: Masanari Iida <standby24x7@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-02-12staging/lustre/llite: remove lustre_generic_file_{read,write}Jinshan Xiong
It looks like lustre_generic_file_{read,write} are a holdover from 2.6.19 where generic_file_aio_read() replaced generic_file_readv() and cross-kernel interoperability was required for some period of time. Lustre has since removed support for those older kernels, but it looks like the wrappers were not deleted at that time. This patch will delete them. Pass &iocb->ki_pos as the last argument for these functions instead of crw_pos, since this is the convention for other callers. Verify that this is the same as the current crw_pos argument. This code can likely be cleaned up further in a later patch. Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-01-13lustre: delete linux/lustre_debug.hGreg Kroah-Hartman
There was only one macro in here, LL_CDEBUG_PAGE(). So open code it in the 2 places it was used so that the developer seeing it can see just how horrid it really is, and they can remove it as I doubt it really is ever needed anymore. But for now, keep the same functionality and remove a whole file (with a duplicate name of other files in the lustre repo, another confusion...) Cc: Peng Tao <bergwolf@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-11-21staging/lustre/llite: Access to released file triggers a restoreJC Lafoucriere
When a client accesses data in a released file, or truncate it, client must trig a restore request. During this restore, the client must not glimpse and must use size from MDT. To bring the "restore is running" information on the client we add a new t_state bit field to mdt_info which will be used to carry transient file state. To memorise this information in the inode we add a new flag LLIF_FILE_RESTORING. Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-3432 Lustre-change: http://review.whamcloud.com/6537 Signed-off-by: JC Lafoucriere <jacques-charles.lafoucriere@cea.fr> Reviewed-by: Oleg Drokin <oleg.drokin@intel.com> Tested-by: Oleg Drokin <oleg.drokin@intel.com> Signed-off-by: Peng Tao <bergwolf@gmail.com> Signed-off-by: Andreas Dilger <andreas.dilger@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-08-03staging: lustre: remove RETURN macroGreg Kroah-Hartman
We have a kernel-wide function tracing system, so use that instead of rolling a custom one just for one filesystem. Cc: Peng Tao <tao.peng@emc.com> Cc: Andreas Dilger <andreas.dilger@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-08-03staging: lustre: remove EXIT macroGreg Kroah-Hartman
We have a kernel-wide function tracing system, so use that instead of rolling a custom one just for one filesystem. Cc: Peng Tao <tao.peng@emc.com> Cc: Andreas Dilger <andreas.dilger@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-08-02staging: lustre: remove ENTRY macroGreg Kroah-Hartman
We have a kernel-wide function tracing system, so use that instead of rolling a custom one just for one filesystem. Cc: Peng Tao <tao.peng@emc.com> Cc: Andreas Dilger <andreas.dilger@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-07-23staging: lustre: Fix typo in printkMasanari Iida
Correct spelling typo in printk within staging/lustre Signed-off-by: Masanari Iida <standby24x7@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-07-23staging/lustre/layout: introduce new layout for released filesJinshan Xiong
Released files now have a standard layout (with generation, pool, ...) and a stripe count 0 and lmm_pattern flag LOV_PATTERN_F_RELEASED. Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-2482 Lustre-change: http://review.whamcloud.com/4816 Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com> Signed-off-by: Johann Lombardi <johann.lombardi@intel.com> Reviewed-by: Keith Mannthey <keith.mannthey@intel.com> Reviewed-by: Fan Yong <fan.yong@intel.com> Reviewed-by: Andreas Dilger <andreas.dilger@intel.com> Signed-off-by: Peng Tao <tao.peng@emc.com> Signed-off-by: Andreas Dilger <andreas.dilger@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-07-23staging/lustre/llite: use READ, WRITE around ll_rw_stats_tally()John L. Hammond
In vvp_io_write_start() the stats function ll_rw_stats_tally() was incorrectly called with a rw argument of 0. Correct this and use the macros READ and WRITE in and around ll_rw_stats_tally() for clarity. Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-3384 Lustre-change: http://review.whamcloud.com/6447 Signed-off-by: John L. Hammond <john.hammond@intel.com> Reviewed-by: Andreas Dilger <andreas.dilger@intel.com> Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com> Signed-off-by: Peng Tao <tao.peng@emc.com> Signed-off-by: Andreas Dilger <andreas.dilger@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-07-23staging/lustre: remove the second argument of ll_kmap_atomic()Zhao Hongjiang
kmap_atomic allows only one argument now, just remove the second. Signed-off-by: Zhao Hongjiang <zhaohongjiang@huawei.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-06-03staging/lustre/clio: don't ignore layout on writebackNiu Yawei
In some cases such as kernel writeback, we shouldn't ignore the layout, otherwise, it could race with layout change undergoing. Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-3160 Lustre-change: http://review.whamcloud.com/6154 Signed-off-by: Niu Yawei <yawei.niu@intel.com> Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com> Reviewed-by: Andreas Dilger <andreas.dilger@intel.com> Reviewed-by: Fan Yong <fan.yong@intel.com> Reviewed-by: Oleg Drokin <oleg.drokin@intel.com> Signed-off-by: Peng Tao <tao.peng@emc.com> Signed-off-by: Andreas Dilger <andreas.dilger@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-05-14staging: add Lustre file system client supportPeng Tao
Lustre is the most deployed distributed file system in the HPC (High Performance Computing) world. The patch adds its client side support. The code is not very clean and needs to live in drivers/staging for some time for continuing cleanup work. See drivers/staging/lustre/TODO for details. The code is based on Lustre master commit faefbfc04 commit faefbfc0460bc00f2ee4c1c1c86aa1e39b9eea49 Author: Alex Zhuravlev <alexey.zhuravlev@intel.com> Date: Tue Apr 30 23:05:21 2013 +0400 LU-3244 utils: tunefs.lustre should preserve virgin label Plus a few under-review patches on Whamcloud gerrit: 3.8 kernel support: http://review.whamcloud.com/#change,5973 http://review.whamcloud.com/#change,5974 http://review.whamcloud.com/#change,5768 http://review.whamcloud.com/#change,5781 http://review.whamcloud.com/#change,5763 http://review.whamcloud.com/#change,5613 http://review.whamcloud.com/#change,5655 3.9 kernel support: http://review.whamcloud.com/#change,5898 http://review.whamcloud.com/#change,5899 Kconfig/Kbuild: http://review.whamcloud.com/#change,4646 http://review.whamcloud.com/#change,4644 libcfs cleanup: http://review.whamcloud.com/#change,2831 http://review.whamcloud.com/#change,4775 http://review.whamcloud.com/#change,4776 http://review.whamcloud.com/#change,4777 http://review.whamcloud.com/#change,4778 http://review.whamcloud.com/#change,4779 http://review.whamcloud.com/#change,4780 All starting/trailing whitespaces are removed, to match kernel coding style. Also ran scripts/cleanfile on all lustre source files. [maked the Kconfig depend on BROKEN as the recent procfs changes causes this to fail - gregkh] Signed-off-by: Peng Tao <tao.peng@emc.com> Signed-off-by: Andreas Dilger <andreas.dilger@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>