From 1f37ed7a5283ef3abd095d6a92efa231e7e2444d Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Mon, 9 Jul 2012 11:35:20 -0700 Subject: [PATCH] Factor out check_same_dev_ino() from check_same_stat() so it can be called separately. --- source3/smbd/open.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/source3/smbd/open.c b/source3/smbd/open.c index c88fe65a346..145a8a4e6af 100644 --- a/source3/smbd/open.c +++ b/source3/smbd/open.c @@ -39,6 +39,20 @@ struct deferred_open_record { struct file_id id; }; +/**************************************************************************** + Check two stats have identical dev and ino fields. +****************************************************************************/ + +static bool check_same_dev_ino(const SMB_STRUCT_STAT *sbuf1, + const SMB_STRUCT_STAT *sbuf2) +{ + if (sbuf1->st_ex_dev != sbuf2->st_ex_dev || + sbuf1->st_ex_ino != sbuf2->st_ex_ino) { + return false; + } + return true; +} + /**************************************************************************** If the requester wanted DELETE_ACCESS and was rejected because the file ACL didn't include DELETE_ACCESS, see if the parent ACL @@ -2745,8 +2759,7 @@ bool check_same_stat(const SMB_STRUCT_STAT *sbuf1, { if (sbuf1->st_ex_uid != sbuf2->st_ex_uid || sbuf1->st_ex_gid != sbuf2->st_ex_gid || - sbuf1->st_ex_dev != sbuf2->st_ex_dev || - sbuf1->st_ex_ino != sbuf2->st_ex_ino) { + !check_same_dev_ino(sbuf1, sbuf2)) { return false; } return true; -- 2.34.1