History log of /linux-master/fs/orangefs/orangefs-mod.c
Revision Date Author Comments
# ea60a4ad 17-Oct-2022 Zhang Xiaoxu <zhangxiaoxu5@huawei.com>

orangefs: Fix sysfs not cleanup when dev init failed

When the dev init failed, should cleanup the sysfs, otherwise, the
module will never be loaded since can not create duplicate sysfs
directory:

sysfs: cannot create duplicate filename '/fs/orangefs'

CPU: 1 PID: 6549 Comm: insmod Tainted: G W 6.0.0+ #44
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-1.fc33 04/01/2014
Call Trace:
<TASK>
dump_stack_lvl+0x34/0x44
sysfs_warn_dup.cold+0x17/0x24
sysfs_create_dir_ns+0x16d/0x180
kobject_add_internal+0x156/0x3a0
kobject_init_and_add+0xcf/0x120
orangefs_sysfs_init+0x7e/0x3a0 [orangefs]
orangefs_init+0xfe/0x1000 [orangefs]
do_one_initcall+0x87/0x2a0
do_init_module+0xdf/0x320
load_module+0x2f98/0x3330
__do_sys_finit_module+0x113/0x1b0
do_syscall_64+0x35/0x80
entry_SYSCALL_64_after_hwframe+0x46/0xb0

kobject_add_internal failed for orangefs with -EEXIST, don't try to register things with the same name in the same directory.

Fixes: 2f83ace37181 ("orangefs: put register_chrdev immediately before register_filesystem")
Signed-off-by: Zhang Xiaoxu <zhangxiaoxu5@huawei.com>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>


# 211f9f2e 28-Mar-2021 Mike Marshall <hubcap@omnibond.com>

orangefs: leave files in the page cache for a few micro seconds at least

Signed-off-by: Mike Marshall <hubcap@omnibond.com>


# e848643b 17-Jul-2020 Jing Xiangfeng <jingxiangfeng@huawei.com>

orangefs: remove unnecessary assignment to variable ret

The variable ret is guaranteed to be 0 in this if (). So we can remove
this assignement.

Signed-off-by: Jing Xiangfeng <jingxiangfeng@huawei.com>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>


# 22ce8561 24-May-2020 Colin Ian King <colin.king@canonical.com>

orangefs: remove redundant assignment to variable ret

The variable ret is being initialized with a value that is
never read and it is being updated later with a new value. The
initialization is redundant and can be removed.

Addresses-Coverity: ("Unused value")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>


# 0979cf95 04-Jul-2019 Greg Kroah-Hartman <gregkh@linuxfoundation.org>

orangefs: fix build warning from debugfs cleanup patch

Stephen writes:
After merging the driver-core tree, today's linux-next build (x86_64
allmodconfig) produced this warning:

fs/orangefs/orangefs-debugfs.c: In function 'orangefs_debugfs_init':
fs/orangefs/orangefs-debugfs.c:193:1: warning: label 'out' defined but not used [-Wunused-label]
out:
^~~
fs/orangefs/orangefs-debugfs.c: In function 'orangefs_kernel_debug_init':
fs/orangefs/orangefs-debugfs.c:204:17: warning: unused variable 'ret' [-Wunused-variable]
struct dentry *ret;
^~~
Fix this up and change the return type of the function to void as it can
not fail, which cleans up some more code and variables as well.

Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: devel@lists.orangefs.org
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Fixes: f095adba36bb ("orangefs: no need to check return value of debugfs_create functions")
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


# 09c434b8 19-May-2019 Thomas Gleixner <tglx@linutronix.de>

treewide: Add SPDX license identifier for more missed files

Add SPDX license identifiers to all files which:

- Have no license information of any form

- Have MODULE_LICENCE("GPL*") inside which was used in the initial
scan/conversion to ignore the file

These files fall under the project license, GPL v2 only. The resulting SPDX
license identifier is:

GPL-2.0-only

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


# 8f04e1be 12-Feb-2019 Martin Brandenburg <martin@omnibond.com>

orangefs: add orangefs_revalidate_mapping

This is modeled after NFS, except our method is different. We use a
simple timer to determine whether to invalidate the page cache. This
is bound to perform.

This addes a sysfs parameter cache_timeout_msecs which controls the time
between page cache invalidations.

Signed-off-by: Martin Brandenburg <martin@omnibond.com>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>


# 07a25853 17-Aug-2017 Markus Elfring <elfring@users.sourceforge.net>

orangefs: Delete error messages for a failed memory allocation in five functions

Omit an extra message for a memory allocation failure in these functions.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>


# 70823b9b 02-Feb-2017 Jan Kara <jack@suse.cz>

orangefs: Remove orangefs_backing_dev_info

It is not used anywhere.

CC: Mike Marshall <hubcap@omnibond.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>


# dc033621 04-Nov-2016 Mike Marshall <hubcap@omnibond.com>

orangefs: clean up debugfs

We recently refactored the Orangefs debugfs code.
The refactor seemed to trigger dan.carpenter@oracle.com's
static tester to find a possible double-free in the code.

While designing the fix we saw a condition under which the
buffer being freed could also be overflowed.

We also realized how to rebuild the related debugfs file's
"contents" (a string) without deleting and re-creating the file.

This fix should eliminate the possible double-free, the
potential overflow and improve code readability.

Signed-off-by: Mike Marshall <hubcap@omnibond.com>
Signed-off-by: Martin Brandenburg <martin@omnibond.com>


# 1d503617 16-Aug-2016 Martin Brandenburg <martin@omnibond.com>

orangefs: rename most remaining global variables

Only op_timeout_secs, slot_timeout_secs, and hash_table_size are left
because they are exposed as module parameters. All other global
variables have the orangefs_ prefix.

Signed-off-by: Martin Brandenburg <martin@omnibond.com>


# 889d5f1b 15-Aug-2016 Martin Brandenburg <martin@omnibond.com>

orangefs: g_orangefs_stats -> orangefs_stats for consistency

Signed-off-by: Martin Brandenburg <martin@omnibond.com>


# a0fe0515 15-Aug-2016 Martin Brandenburg <martin@omnibond.com>

orangefs: make devreq_mutex static

Signed-off-by: Martin Brandenburg <martin@omnibond.com>


# 44f46410 15-Aug-2016 Martin Brandenburg <martin@omnibond.com>

orangefs: clean up debugfs globals

Mostly this is moving code into orangefs-debugfs.c so that globals turn
into static globals.

Then gossip_debug_mask is renamed orangefs_gossip_debug_mask but keeps
global visibility, so it can be used from a macro.

Signed-off-by: Martin Brandenburg <martin@omnibond.com>


# 957ee437 26-Jul-2016 Martin Brandenburg <martin@omnibond.com>

orangefs: Change default dcache and getattr timeout to 50 msec.

Signed-off-by: Martin Brandenburg <martin@omnibond.com>


# 4cd8f319 25-Jul-2016 Martin Brandenburg <martin@omnibond.com>

orangefs: Allow dcache and getattr cache time to be configured.

Signed-off-by: Martin Brandenburg <martin@omnibond.com>


# 2f83ace3 17-Mar-2016 Martin Brandenburg <martin@omnibond.com>

orangefs: put register_chrdev immediately before register_filesystem

Signed-off-by: Martin Brandenburg <martin@omnibond.com>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>


# 1a0ce16d 17-Mar-2016 Mike Marshall <hubcap@omnibond.com>

Orangefs: adjust unwind on module init failure.

Signed-off-by: Mike Marshall <hubcap@omnibond.com>


# 2180c52c 14-Mar-2016 Mike Marshall <hubcap@omnibond.com>

Orangefs: fix sloppy cleanups of debugfs and sysfs init failures.

Signed-off-by: Mike Marshall <hubcap@omnibond.com>


# 9d9e7ba9 03-Mar-2016 Mike Marshall <hubcap@omnibond.com>

Orangefs: improve gossip statements

Signed-off-by: Mike Marshall <hubcap@omnibond.com>


# ca9f518e 26-Feb-2016 Mike Marshall <hubcap@omnibond.com>

Orangefs: code sanitation.

Signed-off-by: Mike Marshall <hubcap@omnibond.com>


# 78699e29 11-Feb-2016 Al Viro <viro@zeniv.linux.org.uk>

orangefs: delay freeing slot until cancel completes

Make cancels reuse the aborted read/write op, to make sure they do not
fail on lack of memory.

Don't issue a cancel unless the daemon has seen our read/write, has not
replied and isn't being shut down.

If cancel *is* issued, don't wait for it to complete; stash the slot
in there and just have it freed when cancel is finally replied to or
purged (and delay dropping the reference until then, obviously).

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>


# 2d4cae0d 04-Feb-2016 Mike Marshall <hubcap@omnibond.com>

Orangefs: clean up slab allocation.

A couple of caches were no longer needed:

- iov_iter improvements to orangefs_devreq_write_iter eliminated
the need for the dev_req_cache.

- removal (months ago) of the old AIO code eliminated the need
for the kiocb_cache.

Also, deobfuscation of use of GFP_KERNEL when calling kmem_cache_(z)alloc
for remaining caches.

Signed-off-by: Mike Marshall <hubcap@omnibond.com>


# ed42fe05 22-Jan-2016 Al Viro <viro@zeniv.linux.org.uk>

orangefs: hopefully saner op refcounting and locking

* create with refcount 1
* make op_release() decrement and free if zero (i.e. old put_op()
has become that).
* mark when submitter has given up waiting; from that point nobody
else can move between the lists, change state, etc.
* have daemon read/write_iter grab a reference when picking op
and *always* give it up in the end
* don't put into hash until we know it's been successfully passed to
daemon

* move op->lock _lower_ than htab_in_progress_lock (and make sure
to take it in purge_inprogress_ops())

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>


# 96acf9d6 22-Jan-2016 Al Viro <viro@zeniv.linux.org.uk>

orangefs: nothing should remain in request list and in hash

... otherwise some thread is running in .text that is about to
be freed.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>


# 831d0949 21-Jan-2016 Al Viro <viro@zeniv.linux.org.uk>

orangefs: move wakeups into set_op_state_{serviced,purged}()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>


# 3e1dd9aa 19-Jan-2016 Al Viro <viro@zeniv.linux.org.uk>

orangefs: use DEFINE_MUTEX (and mutex_init() had been too late)

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>


# 4c27b327 13-Jan-2016 Mike Marshall <hubcap@omnibond.com>

Orangefs: change ORANGEFS_VERSION from "Unknown" to "upstream"

Signed-off-by: Mike Marshall <hubcap@omnibond.com>


# 575e9461 03-Dec-2015 Mike Marshall <hubcap@omnibond.com>

Orangefs: change pvfs2 filenames to orangefs

Also changed references within source files that referred to
header files whose names had changed.

Signed-off-by: Mike Marshall <hubcap@omnibond.com>