After the behavior of '%pD' is changed to print the full path of file, the log printing can be simplified. Given the space with proper length would be allocated in vprintk_store(), it is worthy of dropping kmalloc()/kfree() to avoid additional space allocation. The error case is well handled in d_path_unsafe(), the error string would be copied in '%pD' buffer, no need to additionally handle IS_ERR(). Cc: Song Liu <song@xxxxxxxxxx> Cc: linux-raid@xxxxxxxxxxxxxxx Cc: linux-kernel@xxxxxxxxxxxxxxx Signed-off-by: Jia He <justin.he@xxxxxxx> --- drivers/md/md-bitmap.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/drivers/md/md-bitmap.c b/drivers/md/md-bitmap.c index e29c6298ef5c..a82f1c2ef83c 100644 --- a/drivers/md/md-bitmap.c +++ b/drivers/md/md-bitmap.c @@ -862,21 +862,12 @@ static void md_bitmap_file_unmap(struct bitmap_storage *store) */ static void md_bitmap_file_kick(struct bitmap *bitmap) { - char *path, *ptr = NULL; - if (!test_and_set_bit(BITMAP_STALE, &bitmap->flags)) { md_bitmap_update_sb(bitmap); if (bitmap->storage.file) { - path = kmalloc(PAGE_SIZE, GFP_KERNEL); - if (path) - ptr = file_path(bitmap->storage.file, - path, PAGE_SIZE); - - pr_warn("%s: kicking failed bitmap file %s from array!\n", - bmname(bitmap), IS_ERR(ptr) ? "" : ptr); - - kfree(path); + pr_warn("%s: kicking failed bitmap file %pD from array!\n", + bmname(bitmap), bitmap->storage.file); } else pr_warn("%s: disabling internal bitmap due to errors\n", bmname(bitmap)); -- 2.17.1