Commit Graph

412 Commits

Author SHA1 Message Date
Robert Baldyga
9fc5e39349 Get rid of strlcpy()
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
2024-05-14 08:22:34 +02:00
Robert Baldyga
5c4b5634cb Add missing "static" to the local functions
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
2024-05-14 08:22:34 +02:00
Robert Baldyga
7dd5fa8029 Add missing headers
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
2024-05-14 08:22:34 +02:00
Robert Baldyga
6aa30f05ce Remove unused function
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
2024-05-14 08:22:34 +02:00
Robert Baldyga
334cc31a5c Set exp_obj rotational=0
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
2024-04-03 12:11:42 +02:00
Robert Baldyga
9db73b2fb6 Set gd->queue to NULL after queue cleanup
Otherwise put_disk() tries to access the queue which leads to
kernel panic.

Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-12-30 15:18:07 +01:00
Michal Mielewczyk
4753374b1b Change CAS_BIO_MAX_VECS value
Previously when user tried to allocate to big bio he recieved NULL. As the
behavior was changed to `BUG()` passing out of range value is no longer legal.

Limiting the requested bio size to BIO_MAX_PAGES (on the older kernels) or to
BIO_MAX_VECS (on the newer ones) eliminates the problem as the macros represent
the max possible value.

Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2022-12-28 13:59:20 +01:00
Krzysztof Majzerowicz-Jaszcz
2eef5ce36b Fix for using uninitialized variable in printk
This commit fixes the case of using unintialized variable in error
handling path after failed core addition.

Signed-off-by: Krzysztof Majzerowicz-Jaszcz <krzysztof.majzerowicz-jaszcz@intel.com>
2022-11-08 11:47:23 +00:00
Krzysztof Majzerowicz-Jaszcz
f1bf2eb909 Kernel 6.0 support
This patch introduces kernel 6.0 support for Open CAS

Signed-off-by: Krzysztof Majzerowicz-Jaszcz <krzysztof.majzerowicz-jaszcz@intel.com>
2022-10-28 09:41:43 +02:00
Robert Baldyga
cefaa3b415
Merge pull request #1380 from robertbaldyga/available-memory-check
Use available memory statistic when possible
2022-10-25 11:04:15 +02:00
Krzysztof Majzerowicz-Jaszcz
f0af7cb52d Open CAS Linux kernel 5.18 support
This patch introduces the support for 5.18 kernel.

Signed-off-by: Krzysztof Majzerowicz-Jaszcz <krzysztof.majzerowicz-jaszcz@intel.com>
2022-10-24 09:53:01 +00:00
Robert Baldyga
b00de9c940 Use available memory statistic when possible
Update function returning size of free memory to use available statistic
if that's supported by given kernel. This function is used to check
whether there is enough memory to start cache, and available statistic is
preferred for this check over free statistic, as it does include size of
page cache allocations which can be easily reclaimed by the system.

Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-10-12 08:12:42 +02:00
Robert Baldyga
de060d1d5b
Merge pull request #1307 from mmichal10/kmemleak
Integrate kmemleak into CAS
2022-10-04 10:03:37 +02:00
Robert Baldyga
64420d7ce7 Remove blkdev_can_hndl_bio() function
This check will always return 0, as none of kernel versions supported
by Open CAS sets a barrier flag in for bio. Those flags are exclusive to
struct request, which is no longer used by Open CAS.

Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-09-27 16:39:33 +02:00
Robert Baldyga
ec7cee7e75
Merge pull request #1352 from robertbaldyga/exp_obj-refactor
Refactor disk/exp_obj API
2022-09-27 10:11:57 +02:00
Michal Mielewczyk
38bef1f7fe Integrate kmemleak into CAS
Kmemleak is a tool which allows to detect memory leaks in kernel. It requires
`CONFIG_DEBUG_KMEMLEAK` to be enabled during kernel compilation. Otherwise all
the kmemleak_* functions are NOPs.

Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2022-09-26 15:44:16 +02:00
Robert Baldyga
5e2c1c15cf Merge exp obj create/activate
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-09-23 14:21:37 +02:00
Robert Baldyga
d0d17545eb Move major/minor management to exported object code
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-09-23 14:21:37 +02:00
Robert Baldyga
61dff1f6fd Move private field to struct cas_exp_obj
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-09-23 14:21:37 +02:00
Robert Baldyga
dc390adf49 Move exported object specific properties to struct cas_exp_obj
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-09-23 14:21:37 +02:00
Robert Baldyga
72cf855355 Move openers_lock to struct cas_exp_obj
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-09-23 14:21:37 +02:00
Robert Baldyga
67ed36ae0e Remove disk kobj
Simplify disk life cycle.

Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-09-23 14:21:37 +02:00
Robert Baldyga
2f54aea87d Remove exported object kobj
Simplify exported object lifecycle.

Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-09-23 14:21:36 +02:00
Robert Baldyga
ad783917d0 Remove one-liner helper functions
Those were not very helpful. Mostly made the code harder to read.

Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-09-23 14:20:47 +02:00
Robert Baldyga
1fe83b4972 Manage lifetime of exported object in top adapter
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-09-23 14:20:42 +02:00
Robert Baldyga
74c17d5115
Merge pull request #1351 from live4thee/fix-compile-error
cas_cache: fix compile error when set CAS_DEBUG_IO=1
2022-09-20 16:04:56 +02:00
Robert Baldyga
8945b482ce Remove private parameter from cas_disk_open()
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-09-19 15:37:58 +02:00
Robert Baldyga
6d2266f7ee Remove cas_disk_claim()
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-09-19 15:37:56 +02:00
David Lee
193f2c9a3a cas_cache: fix compile error when set CAS_DEBUG_IO=1
Signed-off-by: David Lee <live4thee@gmail.com>
2022-09-19 19:21:43 +08:00
Robert Baldyga
4ed64582a6 Remove cas_disk from naming in code
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-09-19 10:38:21 +02:00
Robert Baldyga
edc293495d Remove cas_disk.h
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-09-16 15:16:28 +02:00
Robert Baldyga
2aae800c45 Move helpers from headers to source files
Move helper functions that are used in only one source file to that file.

Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-09-16 15:16:28 +02:00
Robert Baldyga
a7370366cb Remove unused functions
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-09-16 15:16:28 +02:00
Robert Baldyga
13d3decfa9 Consolidate modules
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-09-16 15:16:28 +02:00
Robert Baldyga
a03c577f59
Merge pull request #1319 from robertbaldyga/casdsk-remove-dead-code
Clean cas_disk out of dead code
2022-09-09 09:54:34 +02:00
Robert Baldyga
ba7f693cff Clean cas_disk_defs.h header
Move definitions used only in only one source code file to that file.

Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-09-07 10:44:45 +02:00
Robert Baldyga
320c998a1d Remove cas_disk message prefixes
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-09-07 10:44:37 +02:00
Robert Baldyga
f70789e127 Remove cas_disk kobject
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-08-31 17:55:53 +02:00
Adam Rutkowski
aaab620c8d use INIT_WORK_ONSTACK for work on stack
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2022-09-01 01:04:22 +02:00
Robert Baldyga
4881e6c0f0 Remove casdsk_disk mode
The mode is no longer needed. Remove remaining dead code.

Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-08-25 13:02:25 +02:00
Robert Baldyga
8eb512a743 Remove cas_disk symbol lookup
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-08-25 13:02:25 +02:00
Robert Baldyga
16576c7a95 Remove "mode" sysfs property of casdsk_disk
After removal of PT mode this property is meaningless.

Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-08-25 13:02:25 +02:00
Robert Baldyga
563aeb0058 Remove casdsk_disk_shutdown_all()
As we no longer have in flight upgrade, all exported objects are guaranteed
to be destroyed before cas_cache module is unloaded, so this deinit
mechanism is not needed anymore.

Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-08-25 13:02:25 +02:00
Robert Baldyga
10910d1a65 Remove PT mode from cas_disk
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-08-25 12:34:59 +02:00
Robert Baldyga
3102856025 Remove unused exported symbols from cas_disk
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-08-25 12:33:51 +02:00
Karolina Rogowska
4fc0c4f8bb
Merge pull request #1310 from pdebski21/fix_standby_detach_error_msg
Fix error message when CAS already is in standby detach state
2022-08-19 15:01:24 +02:00
Piotr Debski
9273b39d5d Fix error message for cache already in standby detach state
Signed-off-by: Piotr Debski <piotr.debski@intel.com>
2022-08-19 12:36:22 +02:00
Krzysztof Majzerowicz-Jaszcz
e997f768b0 Rework for RHEL8.5
Rework for RHEL8.5 compatibility to avoid potential bug of exiting queue
after IO completion on a different CPU.

Targeted RHEL kernel version corrected.

Signed-off-by: Krzysztof Majzerowicz-Jaszcz <krzysztof.majzerowicz-jaszcz@intel.com>
2022-08-16 13:50:59 +02:00
Krzysztof Majzerowicz-Jaszcz
b983eeb751 RHEL8.5 kernel 4.18 support fix
This patch adds support for RHEL8.5 with kernel 4.18.0.348.2.1.el8 and
later.

Additional request queue operations added for these kernels.
Configure scripts added/updated.

Fixes #1278

Signed-off-by: Krzysztof Majzerowicz-Jaszcz <krzysztof.majzerowicz-jaszcz@intel.com>
2022-08-12 08:52:36 +02:00
Krzysztof Majzerowicz-Jaszcz
bd9548cff4 Potential double IO completion fix
In specific circumstances, IO could be completed twice.
This patch fixes this problem.

Signed-off-by: Krzysztof Majzerowicz-Jaszcz <krzysztof.majzerowicz-jaszcz@intel.com>
2022-08-10 11:28:43 +02:00