cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

rnbd-srv-dev.c (977B)


      1// SPDX-License-Identifier: GPL-2.0-or-later
      2/*
      3 * RDMA Network Block Driver
      4 *
      5 * Copyright (c) 2014 - 2018 ProfitBricks GmbH. All rights reserved.
      6 * Copyright (c) 2018 - 2019 1&1 IONOS Cloud GmbH. All rights reserved.
      7 * Copyright (c) 2019 - 2020 1&1 IONOS SE. All rights reserved.
      8 */
      9#undef pr_fmt
     10#define pr_fmt(fmt) KBUILD_MODNAME " L" __stringify(__LINE__) ": " fmt
     11
     12#include "rnbd-srv-dev.h"
     13#include "rnbd-log.h"
     14
     15struct rnbd_dev *rnbd_dev_open(const char *path, fmode_t flags)
     16{
     17	struct rnbd_dev *dev;
     18	int ret;
     19
     20	dev = kzalloc(sizeof(*dev), GFP_KERNEL);
     21	if (!dev)
     22		return ERR_PTR(-ENOMEM);
     23
     24	dev->blk_open_flags = flags;
     25	dev->bdev = blkdev_get_by_path(path, flags, THIS_MODULE);
     26	ret = PTR_ERR_OR_ZERO(dev->bdev);
     27	if (ret)
     28		goto err;
     29
     30	dev->blk_open_flags = flags;
     31	bdevname(dev->bdev, dev->name);
     32
     33	return dev;
     34
     35err:
     36	kfree(dev);
     37	return ERR_PTR(ret);
     38}
     39
     40void rnbd_dev_close(struct rnbd_dev *dev)
     41{
     42	blkdev_put(dev->bdev, dev->blk_open_flags);
     43	kfree(dev);
     44}