【问题标题】:file lock leases via NFS v4 in C通过 C 中的 NFS v4 进行文件锁定租约
【发布时间】:2009-12-01 23:34:00
【问题描述】:

有人知道如何使用 NFS v4 的精美文件锁定功能吗? (在例如About the NFS protocol(向下滚动)中描述)。据说 NFS v4 支持 45 秒生命周期的文件锁租赁。我愿意相信 linux 内核(我使用的是 gentoo 2.6.30)会很高兴地处理这些细节,我可以使用fcntl(),这一切都会一帆风顺。然而,我猜测我必须以某种方式做一些特别的事情来获取、维护和释放锁租约。感谢所有帮助。

【问题讨论】:

    标签: c linux nfs filelock


    【解决方案1】:

    你是对的,fcntl 会为你处理所有这些事务。租约管理由 nfs 客户端(linux 中的内核模块)完成

    【讨论】:

    • 我喜欢这个答案,因为它很简单。我想知道我是如何知道 NFS v4 voodoo 实际上是在幕后工作的,因为 fcntl 很乐意在“香草”本地文件系统上工作,并且据说在 NFS v3 下工作。我想我必须尝试一下并让客户端机器崩溃;)
    • 当 fcntl 调用到达内核时,它被分派到任何文件子系统,该文件子系统为它所调用的文件描述符实现它。如果文件描述符指向 nfs 挂载上的文件,它将最终出现在 nfs 客户端的 fcntl 函数中。
    • 顺便说一句,NFS v4 锁租约是通过 F_SETLEASE/F_GETLEASE 还是通过旧的 F_sETLK/F_GETLK ?我猜是前者,但 fcntl 手册页含糊不清,谷歌没有帮助..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-09
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多