Linux File Locking on Network Files

I am try to implement a file locking system within my application which is running in Linux.

I use flock to lock the file as shared (LOCK_SH) when reading and as exclusive (LOCK_EX) when writing.  I'm also perform the lock as non-blocking (LOCK_NB).

I tested the file locking of a networked file by running 2 instances of my application on the same PC simultaneously, and I can see that one will wait to write while the other is in the process of writing.

When I run one instance on one PC and another instance on another PC, I am unable to see that the either PC recognizes the network file as locked.

What is the proper way to get networked PCs to recognize when a file is locked?

I am currently running Fedora 19 and my application is written in C.
sctccommAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

sarabandeCommented:
you may think of setting up an nfs file system. see

http://nfs.sourceforge.net/

for more information.

Sara
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Duncan RoeSoftware DeveloperCommented:
When you mentioned networked file I assumed you were using NFS already. Is that not the case?
man nfs has quite a lot to say about file locking, especially between different clients
0
sctccommAuthor Commented:
I was able to get the file locking to work.

Originally I used:  mount -t cifs //192.168.1.100/project /mnt/project

but this is just normal Windows file sharing, not NFS.

After installing and configuring NFS on my Windows server, I mounted the drive using:

mount -t nfs 192.168.1.100:/project /mnt/project

Now everything is working as expected.
0
sctccommAuthor Commented:
Setting up an actual NFS was the solution.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Programming Theory

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.